我希望能够跟随一个滚球(我可以单独做)并且我希望能够在保持右击的同时围绕球旋转(我也可以自己做)但是当我尝试时结合这两个我得到了不想要的结果。
在下面的代码中你可以看到,如果我只是想围绕球旋转我的" RotateAround"照顾这没问题,如果我只是想跟随球,无论它在哪里与相机距离和角度相同,那么我的_offset负责这一点。当我尝试将2组合起来让它跟随球并且能够旋转相机(右键单击)同时相机停止跟随球。
我认为既然你可以用_offset跟随球,我在Unity教程中发现,当使用RotateAround改变位置时_offset将把相机保持在新位置。顺便说一句,这个脚本在我的Camera GameObject上。
void Start()
{
_offset = CamFollowStartSpot.position - Ball.transform.position;
}
void LateUpdate()
{
if (Input.GetMouseButton(1))
{
_transform.RotateAround(Ball.transform.position, Vector3.up, 20 * Time.deltaTime);
_offset = _transform.position - Ball.transform.position;
}
_transform.position = Ball.transform.position + _offset;
}
答案 0 :(得分:-1)
我弄清楚出了什么问题,就在我最后设定位置的时候。需要在IF语句之前调用下面的代码来检查鼠标单击输入。
_transform.position = Ball.transform.position + _offset;
正确的方法是在下面的代码中。
void LateUpdate()
{
_transform.position = Ball.transform.position + _offset;
if (Input.GetMouseButton(1))
{
_transform.RotateAround(Ball.transform.position, Vector3.up, 20 * Time.deltaTime);
_offset = _transform.position - Ball.transform.position;
}
}