为什么在使用 RayCast 和 LookAt 时角色头部向下像脖子断了一样?
Why the character head is down like neck is broken when using RayCast and LookAt?
脚本已附加到 ThirdPersonController,一旦我 运行 进入游戏,头部就会向下看,就像脖子断了一样。有点可怕。
using UnityEngine;
using System.Collections;
public class MoveObjects : MonoBehaviour {
bool isSpinning;
// Use this for initialization
void Start()
{
isSpinning = true;
}
// Update is called once per frame
void Update()
{
MovePlayerWithMouse();
}
private void MovePlayerWithMouse()
{
if (isSpinning == true)
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit) && hit.collider.name != "ThirdPersonController")
{
transform.LookAt(hit.point);
}
else
{
transform.LookAt(ray.GetPoint(100)); //the number here is compltely arbitrary
}
}
}
}
这是运行游戏时玩家头部的截图:
因为您没有对模型进行 IK 传递。 LookAt() 使变换旋转到您想要查看的点,并且由于它没有 IK ,它只是使后坐力变得有趣。
脚本已附加到 ThirdPersonController,一旦我 运行 进入游戏,头部就会向下看,就像脖子断了一样。有点可怕。
using UnityEngine;
using System.Collections;
public class MoveObjects : MonoBehaviour {
bool isSpinning;
// Use this for initialization
void Start()
{
isSpinning = true;
}
// Update is called once per frame
void Update()
{
MovePlayerWithMouse();
}
private void MovePlayerWithMouse()
{
if (isSpinning == true)
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit) && hit.collider.name != "ThirdPersonController")
{
transform.LookAt(hit.point);
}
else
{
transform.LookAt(ray.GetPoint(100)); //the number here is compltely arbitrary
}
}
}
}
这是运行游戏时玩家头部的截图:
因为您没有对模型进行 IK 传递。 LookAt() 使变换旋转到您想要查看的点,并且由于它没有 IK ,它只是使后坐力变得有趣。