亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從另一個腳本中獲取枚舉值(Unity)

如何從另一個腳本中獲取枚舉值(Unity)

C#
子衿沉夜 2022-10-23 15:42:33
我目前無法從另一個腳本中獲取我的枚舉值這是我處理枚舉的腳本TrafficLightHandler.cspublic enum TRAFFIC_LIGHT{    GREEN,    YELLOW,    RED};public class TrafficLightHandler : MonoBehaviour {    public TRAFFIC_LIGHT Trafficlight;public IEnumerator TrafficLight(){    while (true) {        #region Traffic light is green        //traffic light 1 = green        Trafficlight = TRAFFIC_LIGHT.GREEN;        if(Trafficlight == TRAFFIC_LIGHT.GREEN){            TrafficLightGreenToRed ();            traffic_light_signal[0].GetComponent<Renderer>().material = materials [0];            traffic_light_signal[1].GetComponent<Renderer>().material = materials[2];            //Debug.Log(Trafficlight.ToString());        }        #endregion        yield return new WaitForSeconds (10);        #region Traffic light is yellow        Trafficlight = TRAFFIC_LIGHT.YELLOW;        if(Trafficlight == TRAFFIC_LIGHT.YELLOW){            TrafficLightYellowTrafficLight1 ();            traffic_light_signal[0].GetComponent<Renderer>().material = materials[1];            //Debug.Log(Trafficlight.ToString());        }        #endregion        yield return new WaitForSeconds(3);        #region Traffic light is red        Trafficlight = TRAFFIC_LIGHT.RED;        if(Trafficlight == TRAFFIC_LIGHT.RED){            TrafficLightRedToGreen ();            traffic_light_signal[0].GetComponent<Renderer>().material = materials [2];            traffic_light_signal[1].GetComponent<Renderer>().material = materials[0];            //Debug.Log(Trafficlight.ToString());        }  }}這個腳本的問題是它只獲取綠色值,如果枚舉值從GREEN變為 ,YELLOW它無法獲取YELLOW值,而是仍然是綠色的。我試過這樣做
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

為了能夠使用其他腳本,您需要將其作為任何其他組件使用GetComponent<TCompoenent>().


如果兩個腳本都附加到同一個,gameObject那么只需使用 currentgameObject


var tlh = gameObject.GetComponent<TrafficLightHandler>();

...

tlh.Trafficlight

否則,如果腳本附加到不同的對象,那么您需要對該腳本持有者的引用才能進行實際檢索。


public GameObject otherScriptHolder;

var tlh = otherScriptHolder.GetComponent<TrafficLightHandler>();

...

tlh.Trafficlight


查看完整回答
反對 回復 2022-10-23
  • 1 回答
  • 0 關注
  • 221 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號