void DrawShieldHandle(MeleeItem item) { var shield = item as MeleeShield; if (shield.transform.parent != null) { var root = shield.transform.GetComponentInParent <MeleeEquipmentManager>(); if (root == null) { return; } var coll = root.GetComponent <Collider>(); if (coll) { Handles.DrawWireDisc(coll.bounds.center, Vector3.up, .5f); Handles.color = new Color(1, 0, 0, 0.2f); Handles.DrawSolidArc(coll.bounds.center, Vector3.up, shield.transform.root.forward, shield.defenseRange, .5f); Handles.DrawSolidArc(coll.bounds.center, Vector3.up, shield.transform.root.forward, -shield.defenseRange, .5f); Handles.color = new Color(1, 1, 1, 0.5f); Handles.DrawSolidDisc(coll.bounds.center, Vector3.up, .3f); } } }
void OnSceneGUI() { MeleeItem item = (MeleeItem)target; switch (item.GetType().ToString()) { case "MeleeWeapon": //TODO break; case "MeleeShield": DrawShieldHandle(item); break; } }
void Start() { _meleeItem = GetComponent <MeleeItem>(); if (_meleeItem == null) { _meleeItem = GetComponentInChildren <MeleeItem>(); } _rigidbody = GetComponent <Rigidbody>(); _collider = GetComponent <Collider>(); _sphere = GetComponent <SphereCollider>(); if (startUsing) { EnableMeleeItem(); } else { DisableMeleeItem(); } }