Search Issue Tracker
Won't Fix
Votes
0
Found in
5.0.0f1
Issue ID
676484
Regression
No
Undocumented "Main()" message in MonoBehaviour
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.
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Texture2D hash changes inside of an AssetBundle when rebuilding a SpriteAtlas bundle with an empty AssetPostprocessor Script enabled
- Aniso Level still applies when Generate MipMap is disabled in Texture Import Settings
- Mipmap Limit Groups long names are not truncated when creating a new Mipmap Limit Group with a long name
- “ArgumentException: Invalid double parameter.” error is thrown when Infinity is typed into the Fixed Timestep field
- GameObject becomes gray when using HDRP and STP together on macOS
Add comment