真Unity3d_坐标和矢量入门_UI_3d转2d参考
Posted avi9111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了真Unity3d_坐标和矢量入门_UI_3d转2d参考相关的知识,希望对你有一定的参考价值。
目录
* 这里并没有什么基础教学,都是实战记录
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);
}
以上是关于真Unity3d_坐标和矢量入门_UI_3d转2d参考的主要内容,如果未能解决你的问题,请参考以下文章