Unity3d 小结

只有最简单的Public变量才可以在inspect里显示,变量是可以在inspect里赋值并realtime反应在被attach到的GameObject上的

经典public property的写法,在inspect里不会显示

MonoBehaviour不可以new

Initilize Constructor只可以用不带参数的,不可以重载带不同参数的constructor,默认会变为不带参数的。应该使用Start()

不可以override MonoBehabiour基类

不可以override Start和Update各种方法

Corotine是关于suspend that activity in the game和访问WWW object的技巧

Unity的各种方法

  • Lifecycle function

Awake():dynamic或者drag到GameObject上的script一旦load到scene里就开始Awake()

Start():在Update()之前call one time,这是Initialize MonoBehaivour代替Constructor的地方,加入自己的Coroting

FIxedUpdate():和Physics相关的计算放这里,Call on fixed time interval(使用的原因called once per farme,如果很多geometry需要被load会死掉),因为每一个game loop的frame时间长短可能不一样,取决于渲染每次frame的速度,所以一个fame里会被call几次FixedUpdate也就决定于这个frame的大小,可能一个frame被call10次,也可能被call5次。但是每个frame之间的FixedDetalTime都是一样长0.02/sec(自己定的?),所以有的渲染快的frame被call了5次,有的渲染慢的frame被call了10次。

Update():called once per farme,任何希望每个frame都load一次的逻辑放这里

LateUpdate():Call once per farme but after Update(),是用来和Update()做sychonize的。Used for tracking or following calculation,一个camera1在update的每个loop完成的时候,LateUpdate里的camera2根据Update中camera1的角度调整自己的角度。

  • Event functions:

*On 在Unity script主页可以看到

Unity3d 小结

上一篇:C51数据类型


下一篇:并发导论【转】