我尝试过Atan2,我尝试过任何欧拉角度,我已经尝试过Unity3d的所有网站,我得到了三个结果:
我可以慢慢移动鼠标,我可以以光速移动它,播放器的旋转是固定的,无论是抬头还是向下。
播放器旋转,但不是看着鼠标。就好像它正在做它自己的事情。
它在除z轴之外的任何东西上旋转。
我完全没有想法,完全没出来。我已经尝试了所有方法,包括下载几个slither.io淘汰项目来弄清楚他们是如何完成任务的,但是没有一个能够工作。
如果你在掌握我需要实现的目标时遇到困难,那么此刻我没有代码。但是有一个网站与我正在努力实现的目标相同。
播放surviv.io查看播放器如何根据鼠标旋转。这就是我想要完成的事情。
答案 0 :(得分:0)
我没有测试过这个,但是......
如果您的背景屏幕可以进行射线照射,以便光线与光线发生碰撞,则下面的代码应该有效。然后使用Transform.LookAt()中的坐标稍微玩一下。
基本上它会执行这些步骤。
1 - 将光线从屏幕射到鼠标位置,保存对“命中”变量中所有内容的引用。
2 - 如果有任何事情被击中,请旋转球员变换以查看击中位置。
public LayerMask RaycastCollidableLayers;
public RaycastHit Hit;
public float CheckDistance = 200f;
public Transform Player;
void PerformRaycast(){
//Set up ray
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//Fire ray
Physics.Raycast(ray, out Hit, CheckDistance + 0.1f, RaycastCollidableLayers);
if (Hit.collider == null)
{
//Debug.Log("Raycast hit nothing");
return;
}
else //Ray hit something
{
//Look at Hit.point on x and y axes.
Player.LookAt(new Vector3(Hit.point.x, Hit.point.y, 0f), Vector3.up); //Ignoring z axis, may need to be another axis. Vector3.up sets the up direction.
}
}
来源:
让我知道它对你有用。