官术网_书友最值得收藏!

The Start(), Update(), and Awake() methods, and the execution order

The Start(), Update(), and Awake() methods are called automatically. The Start() method is called on the frame when the script is enabled. For most of our components, this will be when you press the Start button in Unity.

The Awake() method is called just before the Start() method. That gives a very convenient place to set up code if you have any. The Update() method is very specific. It's called on every frame if the component is enabled. It's very useful for observing user keyboard actions, for example. As you can see in our script, in Line 16 we are checking on every frame to find out whether the user has pressed the Enter key.

Let's create a new C# script and call it LearningMethods. As you can see, the Start() and Update() methods are added automatically when you create a new script. To test them all, all that we need to do is add the Awake() method and a few other useful lines to print something on the Console panel:

As you already know, our three methods should be called in a very specific order. Add the LearningMethods component to some GameObject in the Unity scene and press Play. Then stop after two seconds. Keep an eye on the Console tab:

Wow! A lot of stuff on the Console tab? Why? Scroll up to the very top of the Console list. We can observe that Unity has printed the Debug:Log information from our Awake() method, followed by the Start() method. Then the madness starts. Unity prints tons of messages from the Update() method. We know why! Update() is called on every frame, so Unity will execute the lines of code within Update() forever, for every frame it renders.

You can, of course, print other information to Console–not just messages. Replace line 18 with this line:

Debug.Log(Time.time); 

Press Play in Unity. You will notice that the time, in seconds, is printed, after you have pressed the Play button. It's fun, isn't it? Maybe not. Don't worry, we will get into much more interesting programming after we cover dot syntax.

主站蜘蛛池模板: 长垣县| 临江市| 邢台县| 商都县| 大渡口区| 嘉峪关市| 台南市| 中超| 云林县| 榆中县| 凉山| 安新县| 阿克苏市| 伊宁县| 博白县| 吴川市| 连城县| 翁牛特旗| 霍州市| 江孜县| 邯郸县| 巴塘县| 桐庐县| 贵南县| 安丘市| 伊宁市| 博爱县| 元朗区| 华容县| 黎城县| 渝北区| 静宁县| 肇州县| 射洪县| 金平| 东兰县| 赤城县| 淮南市| 阳朔县| 保定市| 衡水市|