Unity3D之坐标变化

本文介绍了Unity3D中的四种坐标系:世界坐标系、屏幕坐标系、视口坐标系和绘制UI坐标系,以及相应的坐标转换方法,包括TransformPoint、InverseTransformPoint、TransformDirection和InverseTransformDirection。通过示例代码展示了如何将世界坐标转换为模型坐标,以实现游戏对象的精确操控。

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

坐标系


Unity中的常用坐标系有四种:


世界坐标系 
我们在场景中添加物体(如:Cube),他们就是以世界坐标系显示在场景中,我们可以用tranform.position来获取。
屏幕坐标系 
屏幕坐标系是以像素为单位的,以屏幕左下角为(0,0),右上角(scree.width,screen.height)。z的位置以相机的世界位置来衡量。


screen.width=Camera.pixelWidth 
screen.height=Camera.pixelHeight


视口坐标系 
视口坐标是相对于相机的,相机的左下角为(0,0),右上角为(1,1),z的位置是以相机的世界位置来衡量的。


绘制UI坐标系 
这个坐标属于屏幕坐标的一种,不同的这个坐标以屏幕的左上角为(0,0),右下角为(screen.width,screen.height)。
有关于坐标转换的方法


Unity中关于坐标转换的方法常用的有:


TransformPoint ():把position从本地坐标转换为世界坐标
InverseTransformPoint ():把position从世界坐标转换成本地坐标
TransformDirection ():把direction从本地坐标转换成世界坐标
InverseTransformDirection ():把direction从世界坐标转换成本地坐标 
当我们的主角要搬运一个物体,比如在一个投篮游戏中,我们的主角要携带球,这个时候可以把球的世界坐标转换成相对与主角的本地坐标;然后主角把球抛出去,此时球的坐标集可以从本地坐标转换成世界坐标,并且把球抛出去的方向也是从本地坐标转换成世界坐标。
接下来主要介绍如何将世界坐标系中的向量变换到模型坐标系:
using UnityEngine;
using System.Collections;

public class PlayerController : Mon
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值