Unity3D 一些基础的3D图形学算法

来源:互联网 发布:unity3d文件如何打开 编辑:程序博客网 时间:2024/05/17 21:55

原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:【Unity3D(AR/VR) 334163814】【Unity3D(游戏) 119706192】 本文链接地址:Unity3D 一些基础的3D图形学算法

最近做一款一款3D“跑酷”游戏终于要上线了,很开森,忙里偷闲分享点常用的一些基础算法。

另外感兴趣的朋友可以去上网下载下来玩玩 ,游戏叫《让小编飞》,嘿嘿、

ps:最近使用中文编程~强迫症们,来咬我啊!

1..A点正前方,10米位置的坐标点


代码:
public Transform A;public Transform Z;void Start () {    正前方();    Debug.Log("Distance:" + Vector3.Distance(A.transform.position, Z.transform.position));}void 正前方(){    Z.transform.position = A.transform.position + Vector3.forward * 10f;}
运行结果:

2.A点前方Y轴45°,10米位置的坐标点

直接上代码:
void 斜前方(){    Quaternion q = Quaternion.Euler(0, 45, 0);    Z.transform.position = A.transform.position + q * Vector3.forward * 10f;}

运行结果:

3.A点到B点方向,10米位置的坐标点


柱子是B点。
这个例子用3D视角来做。
代码:
void 到B方向正前方(){    Vector3 方向 = (B.transform.position - A.transform.position).normalized;    Quaternion q = Quaternion.LookRotation(方向);    Z.transform.position = A.transform.position + q * Vector3.forward * 10f;    Debug.Log("Distance A-B:" + Vector3.Distance(A.transform.position, B.transform.position));}
运行结果:

4.A点到B点方向Y轴偏移45°,10米位置的坐标点

这个例子将B点与A点放在了同一高度,继续使用2D视角。
代码:
void 到B方向斜前方(){    Vector3 方向 = (B.transform.position - A.transform.position).normalized;    Quaternion q = Quaternion.LookRotation(方向) * Quaternion.Euler(0,45,0);    Z.transform.position = A.transform.position + q * Vector3.forward * 10f;    Debug.Log("Distance A-B:" + Vector3.Distance(A.transform.position, B.transform.position));}
运行结果:


到此展示完毕~
谢谢参观~!

0 0
原创粉丝点击