C#脚步控制角色在屏幕上旋转

来源:互联网 发布:淘宝海淘怎么加入 编辑:程序博客网 时间:2024/05/29 17:46

using UnityEngine;
using System.Collections;



public class RotationCS : MonoBehaviour {
float mouseX1;
float mouseY1;


private float xPosition;
private float yPosition;
// Use this for initialization
void Start () {
//先得到屏幕中心点的坐标
xPosition = Screen.width/2f;
yPosition = Screen.height/2f;
}

// Update is called once per frame
void Update () {
//取得当下鼠标的屏幕坐标(以左下角为原点)
mouseX1 = Input.mousePosition.x;
mouseY1 = Input.mousePosition.y;
//计算出鼠标点相对于屏幕中点的偏移
float dx = mouseX1 - xPosition;
float dy = mouseY1 - yPosition;
//默认为90度,即dy=0;
float angle = 90f;
if(dy != 0){
angle = Mathf.Atan(dx/dy)*180/Mathf.PI;
}
//当dy<0时,代表x轴下方,需要有180度的offset;
if(dy<0){
angle += 180;
}
//public class EQuaternion.AngleAxis的例子
//void Example() {
// transform.rotation = Quaternion.AngleAxis(30, Vector3.up);
//}

transform.localRotation = Quaternion.AngleAxis(angle,Vector3.up); 
}
}

0 0