【问题标题】:Accessing variable from other script从其他脚本访问变量
【发布时间】:2015-07-30 10:59:05
【问题描述】:

如何从其他脚本组件调用变量?

mirror.transform.position = cop.GetComponent("AI_Car").mirrorPos;

似乎无法访问脚本AI-Car-script中声明的公共变量carPos

'mirrorPos' is not a member of 'UnityEngine.Component'.

【问题讨论】:

  • 是叫carPos还是mirrorPos?听起来您想获得carPos,但您却获得了mirrorPos

标签: variables unity3d permissions unityscript


【解决方案1】:

两件事:

1) 我在 C# 中工作,所以我可能对此有误,但我认为您必须先获取组件,然后再获取变量。例如:

var otherScript: OtherScript = GetComponent("AI_CAR"); 
var newPosition = otherScript.mirrorPos; 

2) 我认为创建一个临时变量然后访问它是最佳做法。所以在上面的例子中,我会像这样改变 mirror.transform.position:

mirror.transform.position = newPosition;

显然,在 vars 中工作并不总是很好(有时是这样,这是完全不同的对话),但这只是一个简单的伪代码示例。希望这会有所帮助!

编辑:here 是文档

【讨论】:

    【解决方案2】:

    您可以将其转换为正确的类型:

    mirror.transform.position = ((AI_Car)cop.GetComponent("AI_Car")).mirrorPos;
    mirror.transform.position = cop.GetComponent<AI_Car>().mirrorPos;
    

    无论如何,最好是创建一个AI_Car 属性,然后在开始时获取它,这样您就可以在课堂上的任何地方通过aiCar.mirrorPos 或类似的方式阅读它。

    【讨论】:

    • 哦,我的意思是C#,还没碰Javascript
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2017-06-25
    • 2018-03-07
    • 2016-10-25
    相关资源
    最近更新 更多