public void AddTestCollider(DebugUnityColliderProxy proxy, GameObject obj, PrimitiveType type) { switch (type) { case PrimitiveType.Cube: { var _col = new OBB(); _col.c = (obj.transform.position).ToLVector3(); _col.e = (transform.localScale * 0.5f).ToLVector3(); _col.u = new LAxis3D(transform.right.ToLVector3(), transform.up.ToLVector3(), transform.forward.ToLVector3()); proxy.AddCollider(_col, ColliderLocalInfo.identity); break; } case PrimitiveType.Sphere: { var _col = new Sphere(obj.transform.position.ToLVector3(), 0.5f.ToLFloat()); proxy.AddCollider(_col, ColliderLocalInfo.identity); break; } case PrimitiveType.Capsule: { var hDir = (Vector3.up * 0.5f).ToLVector3(); var c = (obj.transform.position).ToLVector3(); var r = 0.5f.ToLFloat(); var _col = new Capsule(c, hDir, r); proxy.AddCollider(_col, ColliderLocalInfo.identity); break; } } }
IEnumerator PingPongMove(DebugUnityColliderProxy comp, LVector3 sPos, LVector3 ePos, float time) { float timer = 0; Vector3 deg; deg.x = Random.Range(1.0f - degFloatRate, 1.0f + degFloatRate); deg.y = Random.Range(1.0f - degFloatRate, 1.0f + degFloatRate); deg.z = Random.Range(1.0f - degFloatRate, 1.0f + degFloatRate); var startDeg = comp.transform.localRotation.eulerAngles.ToLVector3(); var endDeg = (startDeg.ToVector3() + (deg * rawRotateDeg)).ToLVector3(); var obb = comp.Collider as OBB; var aabb = comp.Collider as AABB; var sphere = comp.Collider as Sphere; while (true) { timer += Time.deltaTime; if (timer > time) { break; } var timeRate = (timer / time).ToLFloat(); //change position comp.transform.position = (LVector3.Lerp(sPos, ePos, timeRate).ToVector3()); var collider = comp.Collider; //change rotation if (aabb == null) { Vector3 tdeg = LMath.Lerp(startDeg, endDeg, timeRate).ToVector3(); comp.transform.rotation = Quaternion.Euler(tdeg.x, tdeg.y, tdeg.z); } yield return(null); } StartCoroutine(PingPongMove(comp, ePos, sPos, rawMoveTime * UnityEngine.Random.Range(1.0f - timeFloatRate, 1.0f + timeFloatRate))); }
void OnSceneGUI() { owner = (DebugUnityColliderProxy)target; //DrawPathHeap(); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); owner = (DebugUnityColliderProxy)target; }