[C#] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
using
UnityEngine; using
System.Collections; public
class
Test : MonoBehaviour { //8个标志位
,用来在scene里预览 public
Transform[] points; //需要提取Boxcollier顶点的对象 public
BoxCollider cube; void
Start() { //父节只能调节位置,
不能调节旋转和缩放。 Transform
parent = cube.transform.parent; while (parent!= null ) { parent.localRotation
= Quaternion.Euler(Vector3.zero); parent.localScale
= Vector3.one; parent
= parent.parent; } } void
Update() { Vector3
[] veces = GetBoxColliderVertexPositions(cube); for ( int
i =0; i< veces.Length; i++) { points[i].transform.position
= veces[i]; } } Vector3[]
GetBoxColliderVertexPositions (BoxCollider boxcollider) { var
vertices = new
Vector3[8]; //下面4个点 vertices[0]
= boxcollider.transform.TransformPoint(boxcollider.center + new
Vector3(boxcollider.size.x, -boxcollider.size.y, boxcollider.size.z) * 0.5f); vertices[1]
= boxcollider.transform.TransformPoint( boxcollider.center + new
Vector3(-boxcollider.size.x, -boxcollider.size.y, boxcollider.size.z) * 0.5f); vertices[2]
= boxcollider.transform.TransformPoint( boxcollider.center + new
Vector3(-boxcollider.size.x, -boxcollider.size.y, -boxcollider.size.z) * 0.5f); vertices[3]
= boxcollider.transform.TransformPoint(boxcollider.center + new
Vector3(boxcollider.size.x, -boxcollider.size.y, -boxcollider.size.z) * 0.5f); //上面4个点 vertices[4]
= boxcollider.transform.TransformPoint(boxcollider.center + new
Vector3(boxcollider.size.x, boxcollider.size.y, boxcollider.size.z) * 0.5f); vertices[5]
= boxcollider.transform.TransformPoint( boxcollider.center + new
Vector3(-boxcollider.size.x, boxcollider.size.y, boxcollider.size.z) * 0.5f); vertices[6]
= boxcollider.transform.TransformPoint( boxcollider.center + new
Vector3(-boxcollider.size.x, boxcollider.size.y, -boxcollider.size.z) * 0.5f); vertices[7]
= boxcollider.transform.TransformPoint(boxcollider.center + new
Vector3(boxcollider.size.x, boxcollider.size.y, -boxcollider.size.z) * 0.5f); return
vertices; } } |
最后,欢迎大家测试~ 欢迎在下面给我留言~