5397人加入学习
(16人评价)
3D数学基础:Unity游戏开发

制作于2018.2.4,基于Unity2017.2。

价格 ¥ 144.00
该课程属于 Unity - A计划(永久有效期) 请加入后再学习

坐标系转换,也就是计算不同坐标系下某个点的坐标

假设物体A、B 的世界坐标分别为 (2,3,4)、(2,2,3)

计算以 A 为坐标原点时 B 的坐标,即 AB=B-A=(2,2,3)-(2,3,4)=(0,-1,-1)。

在物体A上挂载脚本并执行:

// 物体 A 的世界坐标为 (2,3,4)
// 物体 B 的世界坐标为 (2,3,3)
Vector B = new Vector3(2,3,3);
// 打印以 A 为坐标原点时的坐标系中 B 点的位置
Debug.Log(transform.InverseTransformPoint(B)); // 打印 [0.00,0.00,-1.00],也就是坐标 (0,0,-1)

假设物体 A 的世界坐标为 (2,3,4)

若以物体 A 为坐标原点时,有一个坐标为 (2,3,3) 的物体 B,计算物体 B 的世界坐标,即 B+A=(2,2,3)+(2,3,4)=(4,6,7)。

在物体A上挂载脚本并执行:

// 物体 A 的世界坐标为 (2,3,4)
// 当以物体 A 为坐标原点时,物体 B 的坐标为 (2,3,3)
Vector B = new Vector3(2,3,3);

// 打印以物体 B 的世界坐标
Debug.Log(transform.InverseTransformPoint(B)); // 打印 [4.00,6.00,7.00],也就是坐标 (4,6,7)。

 

[展开全文]

## 坐标系关联与相互转换

 

### Transform.Translate

 

`public void Translate(Vector3 translation, Space relativeTo = Space.Self);`

 

将transform,相对于space坐标系,移动translation的距离

 

* 移动谁:移动transform所在对象

* 相对于哪个坐标系移动:相对于space移动

* 移动多少:移动translation

* space枚举取值有哪些:space.world,space.self(默认值)

 

## Transform.TransformPoint

 

`public Vector3 TransformPoint(Vector3 position);`

 

将本transform空间中的点position,转换到世界坐标系。

 

## Transform.InverseTransformPoint

 

`public Vector3 InverseTransformPoint(Vector3 position);`

 

将世界坐标系中的点position,转换到本transform的局部坐标系

[展开全文]

transform.Translate(translation:Vector3,relativeTo:Space=Space.Self);

relativeTo为空,则默认为局部坐标系。

最后加Space.World,则是世界坐标系

[展开全文]

一个物体参照  世界坐标 原点  —— 世界坐标

一个物体参照  3d物体   原点 ——  局部坐标

世界坐标  转换  局部坐标  参照 3d物体坐标

局部坐标  转换  世界坐标  参照  世家坐标原点

[展开全文]

A物体相对于A'的坐标,使用transform.invver...

计算出的坐标转换回世界坐标系的时候使用transform.transformpos...;

[展开全文]

transform.translate(x,space.world)

可以使物体的移动按照世界坐标系进行

默认为space.self也就是说局部坐标系

transform.InverseTransformPoint()可以转换世界坐标为局部坐标

transform.TransformPoint()转换局部坐标为世界坐标

[展开全文]

transform.Translate方法中的第二个参数如果是空,则默认为当前对象的坐标系(局部坐标系)

朝着自己的前方移动:

 

朝着世界坐标x方向移动:

 

坐标转换:

 

 

[展开全文]

transform.position 是全局坐标

transform.localPosition 是局部坐标

UnitEditor显示的是局部标

局部坐标 -> 全局坐标

Transform.TransformPoint(Vector3 pos)

全局坐标 ->    局部坐标 

Transform.InverseTransformPoint(Vector3 pos)

 

 

 

[展开全文]

授课教师

SIKI学院老师

课程特色

下载资料(1)
视频(49)

学员动态

Stormthra 加入学习
史家桐 加入学习
yuanpeng 加入学习
Leo2002 加入学习
123hai 加入学习