Search Issue Tracker

Won't Fix

Votes

0

Found in

5.0.0f1

Issue ID

676484

Regression

No

Undocumented "Main()" message in MonoBehaviour

Scripting

-

How to reproduce:

1. Open a new project
2. Create a script called MainTest.cs with the following code:

using UnityEngine;
using System;

public class MainTest : MonoBehaviour {

void Start () {
Debug.Log ("Start called by " + gameObject.name + "!");
}

void Awake () {
Debug.Log ("Awake called by " + gameObject.name + "!");
}

void Main () {
Debug.Log ("Main called by " + gameObject.name + "!");
}
}

3. Attach the script to any game object in the scene
4. Play the scene
- The log messages are printed in the following order: Awake (gameobject1), Awake (gameobject2), Main (gameobject1), Start (gameobject1), Main (gameobject2), Start (gameobject2)
- The Main method is called after all of the Awake methods are called.
- The Start method is called after the game object's Main method is called.
- The Main method is undocumented.
- We decided to not fix this issue, to avoid potential problems given the fact that "Main" is the name of the default function we generate when compiling UnityScript scripts: if we remove it, nothing is going to work anymore; if we document it, than we will have to maintain and support it forever, which is not something we want to do.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.