TrueSync: TSBoxCollider.cs Source File

TrueSync

TSBoxCollider.cs
1 using UnityEngine;
2 using UnityEngine.Serialization;
3 using TrueSync.Physics3D;
4 
5 namespace TrueSync {
9  [AddComponentMenu("TrueSync/Physics/BoxCollider", 0)]
10  public class TSBoxCollider : TSCollider {
11 
12  [FormerlySerializedAs("size")]
13  [SerializeField]
14  private Vector3 _size = Vector3.one;
15 
19  public TSVector size {
20  get {
21  if (_body != null) {
22  TSVector boxSize = ((BoxShape)_body.Shape).Size;
23  boxSize.x /= lossyScale.x;
24  boxSize.y /= lossyScale.y;
25  boxSize.z /= lossyScale.z;
26 
27  return boxSize;
28  }
29 
30  return _size.ToTSVector();
31  }
32 
33  set {
34  _size = value.ToVector();
35 
36  if (_body != null) {
37  ((BoxShape)_body.Shape).Size = TSVector.Scale(value, lossyScale);
38  }
39  }
40  }
41 
42 
46  public void Reset() {
47  if (GetComponent<BoxCollider2D>() != null) {
48  BoxCollider2D boxCollider2D = GetComponent<BoxCollider2D>();
49 
50  size = new TSVector(boxCollider2D.size.x, boxCollider2D.size.y, 1);
51  Center = new TSVector(boxCollider2D.offset.x, boxCollider2D.offset.y, 0);
52  isTrigger = boxCollider2D.isTrigger;
53  } else if (GetComponent<BoxCollider>() != null) {
54  BoxCollider boxCollider = GetComponent<BoxCollider>();
55 
56  size = new TSVector(boxCollider.size.x, boxCollider.size.y, 1);
57  Center = boxCollider.center.ToTSVector();
58  isTrigger = boxCollider.isTrigger;
59  }
60  }
61 
65  public override Shape CreateShape() {
66  return new BoxShape(TSVector.Scale(size, lossyScale));
67  }
68 
69  protected override void DrawGizmos() {
70  Gizmos.DrawWireCube(Vector3.zero, Vector3.one);
71  }
72 
73  protected override Vector3 GetGizmosSize() {
74  return TSVector.Scale(size, lossyScale).ToVector();
75  }
76 
77  }
78 
79 }
Shape Shape
Shape used by a collider.
Definition: TSCollider.cs:20
override Vector3 GetGizmosSize()
Returns the gizmos size.
override Shape CreateShape()
Create the internal shape used to represent a TSBoxCollider.
TSVector size
Size of the box.
bool isTrigger
If it is only a trigger and doesn&#39;t interfere on collisions.
Definition: TSCollider.cs:36
Abstract collider for 3D shapes.
Definition: TSCollider.cs:13
Collider with a box shape.
void Reset()
Sets initial values to size based on a pre-existing BoxCollider or BoxCollider2D. ...
TSVector lossyScale
Holds an first value of the GameObject&#39;s lossy scale.
Definition: TSCollider.cs:129
TSVector Center
Center of the collider shape.
Definition: TSCollider.cs:68
override void DrawGizmos()
Draws the specific gizmos of concrete collider (for example "Gizmos.DrawWireCube" for a TSBoxCollider...
Generated by   doxygen 1.8.11