全局坐标和局部坐标
点的坐标转换
Transform.TransformPoint(Vector3 position); 将一个坐标点从相对transform的局部坐标系转换为全局坐标系
Transform.InverseTransformPoint(Vector3 position); 将坐标点从全局坐标系转换到相对transform的局部坐标系
方向的坐标转换
Transform.TransformDirection(Vector3 direction); 将一个方向从局部坐标系转换到全局坐标系
Transform.InverseTransformDirection(Vector3 direction); 将一个方向从全局坐标系转换到局部坐标系
Transform.TransformVector(Vector3 vector); 将一个向量从局部坐标系转换到全局坐标系
Transform.InverseTransformVector(Vector3 vector); 将一个向量从全局坐标系转换到局部坐标系
屏幕坐标系和全局坐标系
Camera.ScreenToWorldPoint(Vector3 position); 将屏幕坐标系转换为全局坐标系
Camera.WorldToScreenPoint(Vector3 position); 将全局坐标转换为屏幕坐标
Input.mousePosition; 获取鼠标在屏幕中的坐标
例子: 屏幕坐标转为世界坐标
Vector3 mousePos = Input.mousePosition;
Vector3 SToW = Camera.main.ScreenToWorldPoint(new Vector3(mousePos.x,mousePos.y,1));
视口坐标(屏幕坐标的单位化,最大值是1)和屏幕坐标的转换
Camera.ScreenToViewportPoint(Vector3 position); 将屏幕坐标转为视口坐标
Camera.ViewPortToScreenPoint(Vector3 position); 将视口坐标转为屏幕坐标
世界坐标与视口坐标 转换
Camera.WorldToViewportPoint(Vector3 position); 将全局坐标转换为视口坐标
Camera.ViewportWorldPoint(Vector3 position); 将视口坐标转换为全局坐标