亲自做一下Unity基础矩阵转换及其原理说明

首先,直接弄最难的,旋转矩阵

无非如下,反正原理我不懂

沿着y轴旋转的矩阵为:

先搞个测试代码

using UnityEngine;
[ExecuteInEditMode]
public class MatrixTester : MonoBehaviour
{
    public Matrix4x4 _matrix;
    void OnEnable()
    {
        var transform1 = transform;
        _matrix.SetTRS(transform1.position,
            transform1.rotation,
            transform1.localScale);
    }

    
}

Rotation改45度,勾选一下 Matrix Texter 组件

(可以明显看出,就改变了一个y轴,但是4个“地方”改变)

然后,百度一下

 (下面一大个数字键盘,其实没用)

结果,0.7和测试结果相符

所以有了以下代码:

//沿着Y轴旋转的矩阵,矩阵图示参考上面博客内容:
    Matrix4x4 GetYAxisMatrix(float angle)
    {
        Matrix4x4 matrix = Matrix4x4.identity;
        var angleRad = angle * Mathf.Deg2Rad;
        matrix.m00 = Mathf.Cos(angleRad);
        matrix.m02 = Mathf.Sin(angleRad);
        matrix.m20 = -Mathf.Sin(angleRad);
        matrix.m22 = Mathf.Cos(angleRad);
        return matrix;
    }

        // GameObject go = new GameObject("xx");
        // Vector3 dir = GetYAxisMatrix(45f) * transform.forward;
        // go.transform.position =  transform1.position + dir;

参考:

Unity中常用矩阵的推导 - 知乎 (zhihu.com)

【Unity矩阵知识】之Matrix4x4矩阵变换详细实例__阿松先生的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值