unity中的坐标系

unity中四种坐标系

  1. 世界坐标
  2. 自身坐标
  3. 屏幕坐标
  4. 视口坐标

世界坐标

up			世界坐标系的Y轴单位向量
right   		世界坐标系的X轴单位向量
forward 		世界坐标系的Z轴单位向量
可以使用Transform.InverseTransformPoint执行从世界到本地坐标的转换
 cam = Camera.main.transform;
 Vector3 cameraRelative = cam.InverseTransformPoint(transform.position); 

自身坐标

自身坐标到世界坐标
transform.TransformPoint(Vector3.right * 2)
请注意,返回的位置受比例影响。如果要处理方向向量,请使用Transform.TransformDirection。

屏幕坐标

        float hor = Input.GetAxis("Horizontal");
        float ver = Input.GetAxis("Vertical");
        hor *= moveSpeed * Time.deltaTime;
        ver *= moveSpeed * Time.deltaTime;

        //世界坐标转屏幕坐标系
        Vector3 screentPos = Camera.main.WorldToScreenPoint(transform.position);
        //如果移动到最下边 并且 还想向下   或者  移动到最上边 并且 还想向上
        if (screentPos.y <= 0 && ver < 0 || screentPos.y >= Screen.height && ver >0)
            ver = 0;//停

        this.transform.Translate(hor, 0, ver);

视口坐标:摄像机的坐标

参数在[0,1]之间,左下角为坐标原点(0,0)
x表示scene.width
y表示scene.height
w:视口占屏幕宽度比例
h:视口占屏幕高度比例

猜你喜欢

转载自blog.csdn.net/jjjndk1314/article/details/84953170