Unity study 141125-1

協同程序原理
       在主程序運行時同時開啓另一段邏輯處理,來協同當前程序的執行。
1.開啓協同程序就是開啓一個線程
2.MonoBehaviour也是一個線程,與協同程序是互不干擾的模塊。
3.MonoBehaviour與協同程序共同作用於同一個對象
結論:將協同程序所在gameobject的active屬性設置爲false,當再次設置active爲ture時,協同程序並不會再開啓;如是將協同程序所在腳本的enabled設置爲false則不會生效。這是因爲協同程序被開啓後作爲一個線程在運行。

延伸閱讀:在Unity3D中,使用StartCoroutine(string methodName)和StartCoroutine(IEnumerator routine)都可以開啓一個線程。區別在於使用字符串作爲參數可以開啓線程並在線程結束前終止線程,相反使用IEnumerator 作爲參數只能等待線程的結束而不能隨時終止(除非使用StopAllCoroutines()方法);另外使用字符串作爲參數時,開啓線程時最多隻能傳遞 一個參數,並且性能消耗會更大一點,而使用IEnumerator 作爲參數則沒有這個限制。

Flappy Bird (PlayMaker)製作
1.鼠標點擊,Add Force 使Bird(帶有RigidBody)上升,使每次點擊,上升效果一致,即初速度統一爲0,set velocity.
2.遊戲中管子只向左移動,Bird只想上下移動。設置管子障礙物隨機位置,到達指定位置消失掉。注意:創建管子時,Create Object的spawnpoint可以用擺放好方塊的gameObject設置位置。
3.Add global transition —system Events —COLLISION ENTER處理碰撞消息,可以代替使用Trigger Event
(要指定相撞物體Tag)的碰撞事件響應。注意:場景中的物體通過Collision Event響應碰撞,物體落在Floor上,該相接觸的物體不能太小,否則在Unity中,Rigidbody在物理上會持續計算碰撞,實際是隻計算一次。




4.Camera Fade Out 調整過渡顏色結束遊戲。 要使遊戲運行結束,做一個結束狀態,運行到此狀態。


5.爲增強Bird運動效果,使Floor的紋理運動。設置 Texture Tiling 平鋪, 通過設置 offset  使紋理運動起來。





具體Playmaker的Action是Set Texture Offset,每一幀計算累加的Offset X變量。


6.爲使遊戲每次重新加載,即用Reload Level。由於重新加載Scene前,更改了下一輪遊戲背景,應將Reload Level的FSM放在Main Camera
上,Main Camera不隨場景重新加載。

Unity3d,Playmaker Flappy Bird Program:








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章