首页 > 解决方案 > 在 Unity 2D 中对多个对象使用相同的布尔值

问题描述

我有四个具有相同脚本和相同布尔值的游戏对象,当其中一个被射线击中时,布尔状态为 true,但该函数不会启动,因为其他三个游戏对象设置为 false。

我尝试了什么:

  1. 该代码适用于最后一个实例化的对象
  2. 如果我禁用了第一个对象上的脚本并再次重新启用它,则该功能仅适用于该对象
public bool selected;

void Start(){
    selected = false;
}

void Update(){
    showRange ();
}



public void showRange(){

    if (selected == true) {
        for (int i = 0; i < tileRange.Count; i++) {
            tileRange [i].GetComponent<SpriteRenderer> ().enabled = true;
        } 
    } else {
            for (int i = 0; i < tileRange.Count; i++) {
                tileRange [i].GetComponent<SpriteRenderer> ().enabled = false;
        }
    }
}

标签: c#unity3dgame-development

解决方案


简单地使用静态变量:C#中静态变量有什么用?什么时候使用它?为什么我不能在方法中声明静态变量?

你将会拥有:

选择公共静态布尔值;


推荐阅读