从另一个脚本中访问Unity中对象的位置

4
我正在制作一款既有球又有玩家的游戏。目前,我已经为球创建了一个球体,为玩家创建了一个正方形(模型稍后再做)。我给玩家附加了一个运动脚本,以便他可以向所有方向移动,但是我希望他能够在碰到球时拾起它。要做到这一点,我假设在球的脚本中,在碰撞函数中,我需要将球的位置更改为玩家的位置。所以我想知道:从球的脚本中访问玩家的坐标的正确方法是什么?
1个回答

8
我希望我理解得没有错。为了仅获取位置,您可以执行以下操作:
GameObject player = GameObject.Find ("Player");
Transform playerTransform = player.transform;
// get player position
Vector3 position = playerTransform.position;

但是如果你想要轻松地掌握和运用这些IT技术,你需要像育儿一样去学习和实践:
// ...
transform.parent = playerTransform;
// take care to disable physics while ball is under control of the player
rigidbody.isKinematic = true;

这样,您就不必在每个Update或FixedUpdate中自己移动球。如果玩家稍后丢失球,则只需通过设置球的transform.parent = nullisKinematic = false来进行反转。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接