Unity:momo .meta 摄像头 坐标系 材质 碰撞器 刚体 物理材质 FPS 代码入口 out 节点可见性 节点查找 世界局部坐标转换 平移缩放 欧拉角 四元素 物体旋转 获取组件
momo
.meta文件
Unity资源文件的辅助管理工具,不修改文件内容的基础上,将文件的一些属性写入.meta文件
- Unity是左手系坐标
- Unity摄像头:1)正交摄像头,一般用在3D中。2)透视摄像头,一般用在2D中。
- 3D世界的坐标系:1)世界坐标 。2)摄像机坐标。3)模型坐标。
材质
- 模型就像骨骼,材质相当于3D物体的皮肤
- Mesh render组件会有一个材质模型,可以通过这个来制定绘制网格用的材质。
- 碰撞器组件可以检测到碰撞
- 刚体能够让物体做物理计算,获得力,力矩等
- 物理材质碰撞的时候需要的物理参数,例如弹性材料
- FPS:franmes per second
组件的代码入口
***
- out:如果是被out修饰的 参数,那么在函数内可以直接修改这个变量的值。每个方法只有一个返回值,想有多个返回值的时候就需要out。
- GameObject可见性:activeSelf,activeInHierarchy,SetActive
- 距离上一次的刷新时间:Time.deltaTime/fixedDeltaTime
场景树节点查找
- 全局查找:Find(“节点路径”);
- 基于Tag的全局查找,先找到的,先返回:FindWithTag(tag名称);
- 节点子树查找:transform.Find();
- 查找节点下的孩子:transfrom.findChild();
- 获取节点下的第几个孩子:transfrom.GetChild();
- 全局查找:FindGameObjectsWithTag;
- 编辑器里面的postion是相对坐标,可是代码里面的postion是绝对坐标
void FixedUpdate() {
float dt = Time.fixedDeltaTime; // 物理引擎固定更新的时间间隔
}
- forward(正z),up(正y),right(正x);
世界坐标和局部坐标的相互转换
- 将局部坐标转成世界坐标
Vector3 w_pos = this.transform.TransformPoint(new Vector3(0, 0, 0));
w_pos = this.transform.TransformVector(0, 0, 0);
Debug.Log(w_pos);
- 将世界坐标转成局部坐标
Vector3 local_wpos = this.transform.InverseTransformPoint(new Vector3(0, 0, 15));
Debug.Log(local_wpos);
- Rotate()的第二个参数:1)Space.World: 相对于世界坐标系的变换。 2)Space.Self:相对于局部坐标系的变换。
- 平移物体:Translate
- 缩放物体:localScale,lossyScale(只读)
- unity transform里面为了避免万象节锁,使用的是四元数(Quaternion)来存放一个旋转;
- unity编辑器里面为了直观的来旋转,使用的是欧拉角来表示
- 欧拉角:表示物体旋转,绕哪个轴旋转多少度。unity规定zxy顺序;但是会造成万向节锁(Gimbal Lock)的现象。
-
transform存放一个代表旋转的四元素rotation
-
四元素转换成对应的欧拉角:eulerAngles;
-
欧拉角转换成对应的四元素:Quaternion.Euler();
-
this.cube_trans.rotation = Quaternion.Euler(new Vector3(0, 45, 0));
-
Rotate(欧拉角度);
// 欧拉旋转, 在当前的基础,再绕y周旋转45; this.cube_trans.Rotate(new Vector3(0, 45, 0));
Rotate(欧拉角,空间);
Rotate(方向,角度);
Rotate是逆时针为正,与数学一致;
RotateAround
LookAt()视线对准对应的方位;
localEulerAngles,相对父级旋转的欧拉角;
Quaternion
- Quaternion.LookRotation,根据自己的上方向,盯着前方;
- Angle(lhs,rhs);计算两个旋转之间的夹角
- FromToRotation(from, to);一个方向到另一个方向的旋转
获取组件实例
- GetCommpont<组件类型>();
- GetCommpont<>();
- GetCommpontInChildren<>();
- GetCommpontInParent<>();
- GetCommpont(string name);
- MonoBehaviour将参数绑定到编辑器
- gameObject获取transfrom;