从其他脚本访问变量
Accessing variable from other script
如何从其他脚本组件调用变量?
mirror.transform.position = cop.GetComponent("AI_Car").mirrorPos;
似乎无法访问脚本AI-Car-script
中声明的public变量carPos
:
'mirrorPos' is not a member of 'UnityEngine.Component'.
2 件事:
1) 我在 C# 中工作,所以我对此可能是错误的,但我认为您必须获取组件然后获取变量。例如:
var otherScript: OtherScript = GetComponent("AI_CAR");
var newPosition = otherScript.mirrorPos;
2) 我认为最好先创建一个临时变量然后再访问它。所以在上面的例子中,我会像这样改变 mirror.transform.position:
mirror.transform.position = newPosition;
显然,在 vars 中工作并不总是很好(有时是,那是完全不同的对话),但这只是一个简单的伪代码示例。希望这对您有所帮助!
编辑:here 是文档
您可以将其转换为正确的类型:
mirror.transform.position = ((AI_Car)cop.GetComponent("AI_Car")).mirrorPos;
mirror.transform.position = cop.GetComponent<AI_Car>().mirrorPos;
无论如何,最好是制作一个 AI_Car
属性,然后在开始时获取它,这样您就可以通过 aiCar.mirrorPos
在 class 中的任何地方简单地阅读它或类似的。
如何从其他脚本组件调用变量?
mirror.transform.position = cop.GetComponent("AI_Car").mirrorPos;
似乎无法访问脚本AI-Car-script
中声明的public变量carPos
:
'mirrorPos' is not a member of 'UnityEngine.Component'.
2 件事:
1) 我在 C# 中工作,所以我对此可能是错误的,但我认为您必须获取组件然后获取变量。例如:
var otherScript: OtherScript = GetComponent("AI_CAR");
var newPosition = otherScript.mirrorPos;
2) 我认为最好先创建一个临时变量然后再访问它。所以在上面的例子中,我会像这样改变 mirror.transform.position:
mirror.transform.position = newPosition;
显然,在 vars 中工作并不总是很好(有时是,那是完全不同的对话),但这只是一个简单的伪代码示例。希望这对您有所帮助!
编辑:here 是文档
您可以将其转换为正确的类型:
mirror.transform.position = ((AI_Car)cop.GetComponent("AI_Car")).mirrorPos;
mirror.transform.position = cop.GetComponent<AI_Car>().mirrorPos;
无论如何,最好是制作一个 AI_Car
属性,然后在开始时获取它,这样您就可以通过 aiCar.mirrorPos
在 class 中的任何地方简单地阅读它或类似的。