[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; } } |
最後,歡迎大家測試~ 歡迎在下面給我留言~