如何使用其他脚本的变量?

时间:2017-11-30 22:10:32

标签: c# visual-studio unity3d

//SCRIPT 1
Class ColorChanger{
    Public string currentColor;
}

//SCRIPT 2
Class Player{
    private void OnTriggerEnter2D(Collider2D col)
    {
        If (col.tag != currentColor)
        {
            Debug.Log("GAME OVER");
        }
    }
}

如果我在SCRIPT 1中编写SCRIPT 2部分它会起作用,但我想知道如何将“currentColor”变量与其他脚本一起使用?

1 个答案:

答案 0 :(得分:1)

这完全取决于第一个脚本是否附加到GameObject。

1 .- 如果是:

objectwith1stscript.GetComponent<ColorChanger>().currentColor

2 .- 如果不是,那么您可能希望currentColor是静态的:

public static string currentColor;

然后通过以下方式访问它:

ColorChanger.currentColor

3 .- 如果您不希望它因x或y原因而静态(并且没有附加到GameObject),则需要创建该类的实例,像这样:

ColorChanger mycolorchanger = new ColorChanger();

然后像这样使用它:

mycolorchanger.currentColor

如果你使用2个或3个选项,第一个脚本不应该从MonoBehaviour继承。