真Unity3d_坐标和矢量入门_UI_3d转2d参考

目录

* 这里并没有什么基础教学,都是实战记录

4 * 3 等于多少?

这个4是怎么得来的,3+1??


* 这里并没有什么基础教学,都是实战记录

x,y轴形成了二维矢量

x,y,z抽组成三维矢量

。。。。 有点废话

那么问题来了,

4 * 3 等于多少?

//Quaternion * Vector3
Quaternion.AngleAxis(Random.Range(1, 5), Vector3.forward) * Vector3.up

Quaternion.Euler()的意义是
Returns a rotation that rotates z degrees around the z axis, x degrees around the x axis, and y degrees around the y axis.
也就是说绕x轴旋转x度,y轴旋转y度,z轴旋转z度

Quaternion作用于Vector3的右乘操作(*)返回一个将向量做旋转操作后的向量,也就是说是将一个向量(欧拉角)旋转到指定的角度
 

这个4是怎么得来的,3+1??

Quaternion.AngleAxis(Random.Range(1, 5), Vector3.forward) 

已知开始位置和方向,如何计算最终位置

var endPos = startPos + dir * Random.Range(0.5, 1);

 

//上面endPos,startPos,dir,3个参数都是Vector3

对于初学者来说,Vector3既是表示点的距离,也可表示方向,容易搞混

但对于哥来说,就算做了多年,其实也很容易搞混

就是你学了骑单车多年,多年之后还不是只会简单的两脚往前骑,下雨一样会扑街

所以,就是掌握了就好,不用太在意

 

Unity就提供了很好的放大,打印显示都是Vector3的 pos  + dir

    {
            _tempDir = Quaternion.AngleAxis(Random.Range(0.5, 1), Vector3.forward)
                .eulerAngles;
            tempPos = start;
    }
    private void OnDrawGizmos()
    {
        Debug.DrawRay(tempPos,_tempDir);
    }

(红线为 UI 平面)

那么,3*3又如何

说了那么多矢量点积,叉乘,居然是没有3*3的

 

当然, 你可以这么写

(错的不要学)

static public Vector3 Mul(this Vector3 lhs, Vector3 rhs)
{
    return new Vector3(lhs.x * rhs.x, lhs.y * rhs.y, lhs.z * rhs.z);
}

好吧,上面开个玩笑,是这么写的

(直接调用 Cross即可,不需要像下面这样额外写,只是和上面做个对比)

static public Vector3 Cross(this Vector3 lhs,Vector3 rhs)
{
    return Vector3.Cross(lhs,rhs);
}

 

  • 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、付费专栏及课程。

余额充值