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