1. 程式人生 > >Unity高階——狀態機——有限狀態機二

Unity高階——狀態機——有限狀態機二

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;
        
        }
    }
}