C# 对象脚本之间的统一共享布尔值

C# 对象脚本之间的统一共享布尔值,c#,variables,scripting,unity3d,sharing,C#,Variables,Scripting,Unity3d,Sharing,我试图制作一个拼图,当一个盒子被移动到一个压力板上时,会打开一个门。当我把箱子放在压盘上时,我正试图把一个布尔值传递给闸门,让它打开。这是实现我目标的正确方式吗 我有unity 3.4版,它不是专业版,我用C#编写代码 感谢您的帮助,因为我刚刚开始尝试学习unity。假设您的gate游戏对象在您的层次结构视图中具有名称MagicGate,并且分配了一个类型为GateController的脚本组件,其中包含以下代码: public class GateController : MonoBehavi

我试图制作一个拼图,当一个盒子被移动到一个压力板上时,会打开一个门。当我把箱子放在压盘上时,我正试图把一个布尔值传递给闸门,让它打开。这是实现我目标的正确方式吗

我有unity 3.4版,它不是专业版,我用C#编写代码


感谢您的帮助,因为我刚刚开始尝试学习unity。

假设您的gate游戏对象在您的层次结构视图中具有名称MagicGate,并且分配了一个类型为GateController的脚本组件,其中包含以下代码:

public class GateController : MonoBehaviour {
    // Awake(), Update(), ...
    public void OpenGate ();

    public void OpenGate () {
      // code for opening the gate
    }
还有一个类可能是GameStatusController,您可以在其中检测到盒子位于魔法压盘处(碰撞器对此很有用)。这就是你要做的:

GameObject player = GameObject.Find ("MagicGate");
GateController gateController = player.GetComponent<GateController> ();
gateController.OpenGate ();
gameobjectplayer=GameObject.Find(“MagicGate”);
GateController=player.GetComponent();
gateController.OpenGate();

非常感谢。GameStatusController是否会被分配给层次结构中的任何对象,或者脚本是否可以运行而不被分配给任何对象?不一定,这取决于您想做什么:如果您需要完全访问游戏对象层次结构,并且必须依赖于正确的时间,您应该分配它们。其他的我都在外面。通常,拥有一个非单行为类并让其他人在统一控制下调用它是可以的。