1.将物体坐标系 变换 到世界坐标系:
Unity3D里面矩阵是左乘的
P(世界) = M(物体到世界的变换矩阵) * P(物体)
规律:3D变换 首先将物体坐标系变换到世界
2.将 世界坐标 变换 到相机坐标
P(相机) = M(世界到相机的变换矩阵) * P(世界)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestMatrix : MonoBehaviour
{// Start is called before the first frame updatepublic GameObject target;void Start(){Vector3 posWorld = transform.parent.localToWorldMatrix.MultiplyPoint(transform.localPosition);Debug.Log(posWorld);//表示从世界 转化到对应的父类下的 物体坐标系Vector3 targetPos = target.transform.worldToLocalMatrix.MultiplyPoint(posWorld);Debug.Log(targetPos);}// Update is called once per framevoid Update(){}
}
3.变换矩阵
file:///C:/Program%20Files/Unity/Hub/Editor/2022.3.17f1c1/Editor/Data/Documentation/en/Manual/SL-UnityShaderVariables.html
M:物体坐标系 变换 到 世界坐标系V:世界坐标系 变换 到 相机坐标系P:3d 坐标系 变换到 二维屏幕坐标系 (相机 正交投影--不管距离多少大小都一样和透视投影--远小近大)