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;
        }
    }
Example #3
0
    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();
        }
    }