如何限制我的ai运动只在z轴上移动。我已经试过冻结旋转和位置在它的刚体,但相反,当我跳,我的爱也与我在它的位置上,并稍微旋转向我。
private void Update()
{
StopFollowing();
Vector3 relativePos = target.position - transform.position;
Quaternion rotation = Quaternion.LookRotation(relativePos);
Quaternion current = transform.localRotation;
transform.localRotation = Quaternion.Slerp(current, rotation, Time.deltaTime
* LookSpeed);
}
// Update is called once per frame
void followPlayer()
{
Vector3 pos = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
rig.MovePosition(pos);
;
}
发布于 2022-07-18 22:38:08
冻结刚体只会影响物理(使用AddForce或rb.velocity)
您使用的是MoveTowards (基本上是无视物理来传送它)。
但您可以手动将其限制为Z轴:
void followPlayer()
{
Vector3 targetPos = target.position; // copy target Position
targetPos.x = transform.position.x; // keep x
targetPos.y = transform.position.y; // keep y
Vector3 pos = Vector3.MoveTowards(transform.position, targetPos, speed * Time.deltaTime); // now only considers z-difference
rig.MovePosition(pos);
}
您基本上修改了目标位置,使其在x和y轴上相等,这样MoveTowards就只能有效地使用Z。
https://stackoverflow.com/questions/73029098
复制相似问题