private void OnSceneGUI() { ICodeTrigger trigger = target as ICodeTrigger; Handles.color = trigger.color; Handles.DrawSolidDisc(trigger.transform.position, Vector3.up, radius.floatValue); Handles.color = Color.blue; serializedObject.Update(); #if UNITY_5_6_OR_NEWER radius.floatValue = Handles.ScaleValueHandle(radius.floatValue, trigger.transform.position + new Vector3(radius.floatValue, 0, 0), Quaternion.identity, 2, Handles.CubeHandleCap, 2); #else radius.floatValue = Handles.ScaleValueHandle(radius.floatValue, trigger.transform.position + new Vector3(radius.floatValue, 0, 0), Quaternion.identity, 2, Handles.CubeCap, 2); #endif serializedObject.ApplyModifiedProperties(); }
private void Start() { if (!parent) { GameObject go = new GameObject("Trigger"); go.transform.SetParent(transform); go.transform.localPosition = Vector3.zero; SphereCollider mCollider = go.AddComponent <SphereCollider>(); mCollider.radius = radius; mCollider.isTrigger = true; go.layer = 2; Rigidbody mRigidbody = go.AddComponent <Rigidbody>(); mRigidbody.isKinematic = true; ICodeTrigger trigger = go.AddComponent <ICodeTrigger> (); trigger.radius = radius; trigger.color = color; trigger.components = components; trigger.parent = true; Destroy(this); } }