Unity高階——狀態機——有限狀態機二
阿新 • • 發佈:2019-02-06
在Unity高階——狀態機——有限狀態機中,我們對狀態機的整個過程有了概念性的瞭解,接下來,就讓我們來用一個例項,來實現燈泡開關控制這個效果!
為了能實現更明顯的效果,我們刪除預設的光源——新增一個Point Linght點光源,然後條件點光源的位置和大小。
如果要實現開關的效果,我們對intensity進行控制!
準備工作做好之後,接下來我們新增一個指令碼,用來控制燈光——燈光控制器!
當按下鍵盤的O鍵 燈開啟,當按下鍵盤的C鍵燈關閉。
首先我們新建一個C#指令碼——命名為LightController
雙擊新建立的LightController——進入程式碼介面
using UnityEngine; using System.Collections; public class LightController : MonoBehaviour { private Light _light; void Awake(){ _light = GetComponent<Light> (); } void Update(){ //當前的腳步就是狀態機 //使用者按鍵時間就是狀態切換的條件——事件 if(Input.GetKeyDown(KeyCode.O)){ //燈的光強從0變為1時,就是狀態的過渡 //開啟燈 //燈開著的狀態 _light.intensity=1f; } if(Input.GetKeyDown(KeyCode.C)){ //燈的光強從1變為0時,就是狀態的過渡 //關閉燈 //燈處於關著的狀態 _light.intensity=0f; } } }