# Unity 游戏框架搭建 2019 (十六、十七) localPosition 简化与Transform 重置 (2)

我们提取后的方法如下:

#if UNITY_EDITOR using UnityEditor; #endif using UnityEngine; namespace QFramework { public class TransformIdentity : MonoBehaviour { #if UNITY_EDITOR [MenuItem("QFramework/11.Transform 归一化")] #endif private static void MenuClicked() { var transform = new GameObject("transform").transform; Identity(transform); } /// <summary> /// 重置操作 /// </summary> /// <param>Trans.</param> public static void Identity(Transform transform) { transform.localPosition = Vector3.zero; transform.localScale = Vector3.one; transform.localRotation = Quaternion.identity; } } }

代码的执行结果是正确的。

那么有人会问 Identity 是什么意思呢?Identity 其实是一个矩阵的类型,对角线全部是 1 而其他的部分全部是 0,如下图所示。

006tNc79gy1fzdi20inapj302b03lgle.jpg

实际上 Transform 本质是一个 4x4 的矩阵,这个矩阵可以记录矩阵的位置、旋转和缩放值。而 Identity 矩阵对应的 Transform 就是位置为 0、缩放为 1、Rotation 值为 Quaternion.identity 这样的矩阵。

这里不太理解的同学不要紧,重点还是以上代码中的 Identity 方法的实现。

OK,到这里,我们又可以进行一次导出了。

到今天为止,我们收集了十一个示例了。收获满满,大家应该收集了更多的示例了吧?

今天的内容就这些。

转载请注明地址:凉鞋的笔记:liangxiegame.com

更多内容

QFramework 地址:https://github.com/liangxiegame/QFramework

QQ 交流群:623597263

Unity 进阶小班

主要训练内容:

框架搭建训练(第一年)

跟着案例学 Shader(第一年)

副业的孵化(第二年、第三年)

权益、授课形式等具体详情请查看《小班产品手册》:https://liangxiegame.com/master/intro

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxwpg.html