我可以将GameObject存储在变量中,例如:
GameObject Target = SomeGameobject;
我如何为脚本执行此操作?
SomeVariableDefinition TargetStatus = Target.GetComponent<Status>();
变量是什么?有这样的事吗?
提前致谢,抱歉英语不好。
答案 0 :(得分:1)
就像存储游戏对象一样,您也可以保存任何脚本。
GameObject Target = SomeGameobject; //Gameobject sotre
你需要记住,游戏对象也是一个脚本。
Status TargetStatus = Target.GetComponent<Status>();//Status script ref store in TargetStatus Variable
变量类型应该与指定的对象类型(在我们的示例中为脚本名称)
兼容答案 1 :(得分:0)
我假设您正在询问如何获取附加到另一个GameObject的脚本的引用。
你几乎是对的。左侧的类型和GetComponent
中的类型必须匹配。
SomeVariableDefinition TargetStatus = Target.GetComponent<SomeVariableDefinition>();
OR
Status TargetStatus = Target.GetComponent<Status>();
了解如果Target GameObject没有您想要访问的脚本,它将返回null。
下面是完整的示例如何从另一个脚本访问另一个脚本实例,变量或函数。
public class ScriptA : MonoBehaviour{
public int playerScore = 0;
void Start()
{
}
public void doSomething()
{
}
}
现在,您可以ScriptA
从ScriptB
访问public class ScriptB : MonoBehaviour{
ScriptA scriptInstance = null;
void Start()
{
GameObject tempObj = GameObject.Find("NameOfGameObjectScriptAIsAttachedTo");
scriptInstance = tempObj.GetComponent<ScriptA>();
//Access playerScore variable from ScriptA
scriptInstance.playerScore = 5;
//Call doSomething() function from ScriptA
scriptInstance.doSomething();
}
}
中的变量playerScore。
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>InvalidPolicyDocument</Code>
<Message>Invalid Policy: Invalid JSON.</Message>
<RequestId>2F09C5449F42E3AF</RequestId>
<HostId>m++SN+V5bjFFkG0Qa5ceDveS5bBSvjFhcXANlyf2Ay11Llld3EEa54cT7rpg0cjhKLA0ItrnPgg=</HostId>
</Error>