【问题标题】:How to use variable from others scripts? [duplicate]如何使用其他脚本中的变量? [复制]
【发布时间】:2017-11-30 22:10:32
【问题描述】:
//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”变量与其他脚本一起使用?

【问题讨论】:

  • 我面前没有文档,但你可以查一下,但它被称为 GetComponent 之类的东西,你可以在游戏对象上使用它来将其转换为你的类型和然后你可以访问公共变量
  • 谢谢约翰尼找到了!!!你也是萨满

标签: c# visual-studio unity3d


【解决方案1】:

这完全取决于第一个脚本是否附加到游戏对象。

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。

【讨论】:

  • Thaaaaaaaaaanks
  • 你应该接受答案然后:)
猜你喜欢
  • 1970-01-01
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-30
  • 1970-01-01
  • 2020-11-01
  • 2020-01-28
相关资源
最近更新 更多