如何让游戏对象跟随另一个游戏对象,它将在场景中被拖动但不会移动到目标对象中?我想要跟踪目标游戏对象的游戏对象需要位于目标游戏对象之上。
这是我目前的代码。
public float speed;
public GameObject targetObject;
public Transform myGameObject;
void Update()
{
myGameObject.transform.position =
Vector3.MoveTowards(myGameObject.transform.position,
targetObject.transform.position, Time.deltaTime * speed);
}
答案 0 :(得分:1)
您可以检查targetObject
的位置,并在两者之间获得distance
。因此,您可以检查myGameObject
是否在targetObject
的某个半径范围内,如果它没有移到targetObject
的位置。
您的代码可能如下所示:
void Update()
{
if(Vector3.Distance(myGameObject.transform.position, targetObject.transform.position) >= minimumDistance) {
myGameObject.transform.position =
Vector3.MoveTowards(myGameObject.transform.position,
targetObject.transform.position, Time.deltaTime * speed);
}
}
minimumDistance
是您不希望myGameObject
再次移动的半径。
此外,您可能希望将其移至targetObject
上方的位置而不是中间位置。这样,你会做这样的事情:
void Update()
{
myGameObject.transform.position =
Vector3.MoveTowards(myGameObject.transform.position,
targetObject.transform.position + new Vector3(0, up, 0), Time.deltaTime * speed);
}
up
位于targetObject
中心以外的位置,您需要该对象。
希望这有帮助!