请问下unity如何从一个物体的脚本中获得另一个物体的组件?

比如我在 场景中创建了一个 cube 下面挂载了Run 的C#脚本 然后再创建一个 Sphere 挂载一个Ai c#脚本

那么问题来了 我这里怎么得到 cube下的组件呢 谢谢大神

 public class Ai : MonoBehaviour{
       public GameObject ai;
       
       void Start(){
           ai=GetComponent<GameObject>();
       
       }
        
       void Update(){
           Debug.Log(ai.transform.position);
                   
       }
}
阅读 14.3k
1 个回答

首先你需要获取GameObject
通过public方式
声明一个public的GameObject类型的变量

public GameObject cube;

之后你就可以在unity的Inspector窗口中将cube拖拽到这个属性上。
或者Gameobject.Find()来做(从根节点查找,若有多个层级,加斜杠,类似目录)。
假如你已经拿到了Gameobject,那么接下来通过GetComponent获取组件即可。

GameObject cube = GameObject.Find("cube");
Run run = cube.GetComponent<Run>();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进