コード例 #1
0
    // Unholsters Weapon
    public void UnholsterWeapon()
    {
        BoneFollower    follower = CurrentWeapon.GetComponent <BoneFollower>();
        WeaponBehaviour weapon   = CurrentWeapon;
        string          handBone = bFacingLeft ? sWeaponRearHandBone: sWeaponFrontHandBone;

        weapon.bHolstered = false;
        follower.boneName = handBone;
        follower.HandleRebuildRenderer(follower.SkeletonRenderer);

        bHoldingWeapon = true;
    }
コード例 #2
0
    // Holsters Weapon
    public void HolsterWeapon(int index = -1, bool instantSwitch = false)
    {
        if (!bHoldingWeapon)
        {
            return;
        }

        BoneFollower    follower    = CurrentWeapon.GetComponent <BoneFollower>();
        WeaponBehaviour weapon      = CurrentWeapon;
        string          holsterBone = weapon.HoldType == eWeaponHoldType.Secondary
                        ? sSecondaryWeaponHolsterBone : sPrimaryWeaponHolsterBone;

        weapon.bHolstered = true;
        follower.boneName = holsterBone;
        follower.HandleRebuildRenderer(follower.SkeletonRenderer);
        weapon.HandleVisualOffset();

        if (index == -1)
        {
            // Move to the next weapon index
            if (iCurrentWeaponIndex == lWeapons.Count - 1)
            {
                iCurrentWeaponIndex = 0;
            }
            else
            {
                iCurrentWeaponIndex++;
            }
        }
        else
        {
            index = Mathf.Clamp(index, 0, lWeapons.Count - 1);
            iCurrentWeaponIndex = index;
        }

        if (aOnWeaponSwitch != null)
        {
            aOnWeaponSwitch(iCurrentWeaponIndex, instantSwitch);
        }

        // Setup new current weapon
        weapon = CurrentWeapon;
        weapon.EndCooldownTimers();

        bHoldingWeapon = false;
    }