记录下写的 unity C# 代码;
滑动屏幕上的鼠标来控制,飞船的左右上下转动;
public float lookRateSpeed = 15f;
private Vector2 lookInput, screenCenter, mouseDistance;
void Start()
{
//屏幕一半的宽,一半的高;
screenCenter.x = Screen.width/2f;
screenCenter.y = Screen.height/2f;
}
void Update()
{
//鼠标在屏幕上的 x,y 坐标
//屏幕(0,0)点 在左下角,所以屏幕内都是正数;
lookInput.x = Input.mousePosition.x;
lookInput.y = Input.mousePosition.y;
//鼠标距离屏幕中心的比例,值在[-1_0_1]之间
//接近 1 就说明靠近屏幕边缘
//接近 0 就说明靠经屏幕中心
mouseDistance.x = (lookInput.x - screenCenter.x) / screenCenter.x;
mouseDistance.y = (lookInput.y - screenCenter.y) / screenCenter.y;
//鼠标于屏幕中心点形成的 2维向量;限制这个向量的最大值为1f
//效果是即便是鼠标超出屏幕也不会使用旋转过快
mouseDistance = Vector2.ClampMagnitude(mouseDistance, 1f);
//设置了一个区间 效果是鼠标靠近屏幕中心 减慢旋转飞船速度慢
if (Mathf.Abs(mouseDistance.x) > 0.4f || Mathf.Abs(mouseDistance.