我正在制作一款既有球又有玩家的游戏。目前,我已经为球创建了一个球体,为玩家创建了一个正方形(模型稍后再做)。我给玩家附加了一个运动脚本,以便他可以向所有方向移动,但是我希望他能够在碰到球时拾起它。要做到这一点,我假设在球的脚本中,在碰撞函数中,我需要将球的位置更改为玩家的位置。所以我想知道:从球的脚本中访问玩家的坐标的正确方法是什么?
GameObject player = GameObject.Find ("Player");
Transform playerTransform = player.transform;
// get player position
Vector3 position = playerTransform.position;
// ...
transform.parent = playerTransform;
// take care to disable physics while ball is under control of the player
rigidbody.isKinematic = true;
这样,您就不必在每个Update或FixedUpdate中自己移动球。如果玩家稍后丢失球,则只需通过设置球的transform.parent = null
和isKinematic = false
来进行反转。