1.首先,我们在Unity3D新建一个立方体,Reset一下它的transform组件。这时它的中心的世界坐标为(0,0,0)。共有8个顶点(其实是24个),它们世界坐标为正负0.5
1
2.新建一个脚本文件如下:
using UnityEngine;
using System.Collections;
public class TestCoordinateTransform : MonoBehaviour {
void Start () {
Vector3 worldSpace=new Vector3(0.5f,0.5f,-0.5f);//取其中一个顶点世界坐标
Vector3 objSpace=transform.worldToLocalMatrix.MultiplyPoint(worldSpace);//将世界坐标转为模型坐标
print(objSpace);//打印看看
Vector3 viewSpace = Camera.main.worldToCameraMatrix.MultiplyPoint(worldSpace);//将世界坐标转为视坐标
print(viewSpace);
Matrix4x4 m=GL.GetGPUProjectionMatrix(Camera.main.projectionMatrix,true);//获取投影矩