unity中的坐标系

本文深入解析Unity中的四种坐标系:世界坐标、自身坐标、屏幕坐标和视口坐标。详细介绍了每种坐标系的特点,以及如何在游戏开发中进行坐标转换,如从世界坐标到本地坐标、屏幕坐标和视口坐标等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:视口占屏幕高度比例
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值