我想拥有一个GameObject,它跟随我的玩家并始终保持在他的左边。 我不想让它成为一个孩子,因为我看起来不自然,我也玩NavmeshAgent,但第二个对象太慢/它移动太多。
感谢您的任何建议!
答案 0 :(得分:0)
一个解决方案就是:
将一个空的GameObject(我称之为SquadPoint
)添加为该主要玩家对象的子项并将其放置在所需位置(左侧)。
将您的实际小队成员直接放置在场景中(我假设小队成员附加了一个控制器脚本,我称之为SquadMemberController
)
将以下代码添加到SquadMemberController脚本
这应该让小队成员跟随SquadPoint,因为SquadPoint是主要玩家的孩子,它会随着主要玩家的移动而旋转。
const float threshold = 1f;
public float speed; //set in inspector
public Transform SquadPoint; //set in inspector
void FixedUpdate(){
//move towards SquadPoint with given speed
var distance = SquadPoint.position - transform.position;
if(distance.magnitude > threshold)
{
var direction = distance.normalized;
transform.position += direction * speed * time.fixedDeltaTime;
//rotate immediately
transform.LookAt(SquadPoint.position);
}
else
{
//... very close to main player
}
}