示例#1
0
        protected override void AddModifiers()
        {
            base.AddModifiers();

            ///
            DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbIK m_ClimbIK = character.GetComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbIK>();
            if (m_ClimbIK == null)
            {
                m_ClimbIK = Undo.AddComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbIK>(character);
                UpdateModifierList(m_ClimbIK);
            }

            LayerMask m_FootLayers = (1 << 0) | (1 << 14) | (1 << 16) | (1 << 17) | (1 << 18) | (1 << 19) | (1 << 20) | (1 << 25) | (1 << 26);

            m_ClimbIK.m_FeetLayers = m_FootLayers;
            SerializedObject climbIK = new SerializedObject(m_ClimbIK);

            climbIK.FindProperty("m_FeetLayers").intValue           = m_FootLayers;
            climbIK.FindProperty("m_HandOffset").vector3Value       = new Vector3(0.15f, CharacterHeight - 0.35f, 0f);
            climbIK.FindProperty("m_HandOffsetOnHang").vector3Value = new Vector3(0.05f, CharacterHeight - 0.45f, 0f);

            climbIK.ApplyModifiedProperties();
        }
示例#2
0
        private void AddAbilities()
        {
            CameraData defaultCamera  = AssetDatabase.LoadAssetAtPath <CameraData>("Assets/Dias Games/Third Person System/Camera Data/Default.asset");
            CameraData climbingCamera = AssetDatabase.LoadAssetAtPath <CameraData>("Assets/Dias Games/Climbing System/Camera Data/ClimbingCamera.asset");
            CameraData ladderCamera   = AssetDatabase.LoadAssetAtPath <CameraData>("Assets/Dias Games/Climbing System/Camera Data/LadderCamera.asset");

            if (character.GetComponent <DiasGames.ThirdPersonSystem.AnimatorManager>() == null)
            {
                character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.AnimatorManager>();
            }

            if (character.GetComponent <DiasGames.ThirdPersonSystem.UnityInputManager>() == null)
            {
                character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.UnityInputManager>();
            }

            DiasGames.ThirdPersonSystem.Locomotion m_Locomotion = character.GetComponent <DiasGames.ThirdPersonSystem.Locomotion>();
            if (m_Locomotion == null)
            {
                m_Locomotion = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.Locomotion>();

                m_Locomotion.AbilityPhysicMaterial = zeroFriction;
                m_Locomotion.CameraData            = defaultCamera;
            }

            DiasGames.ThirdPersonSystem.JumpAbility m_Jump = character.GetComponent <DiasGames.ThirdPersonSystem.JumpAbility>();
            if (m_Jump == null)
            {
                m_Jump = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.JumpAbility>();
                m_Jump.AbilityPhysicMaterial = zeroFriction;
            }

            DiasGames.ThirdPersonSystem.FallAbility m_Fall = character.GetComponent <DiasGames.ThirdPersonSystem.FallAbility>();
            if (m_Fall == null)
            {
                m_Fall = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.FallAbility>();
                m_Fall.AbilityPhysicMaterial = zeroFriction;
            }

            DiasGames.ThirdPersonSystem.RollAbility m_Roll = character.GetComponent <DiasGames.ThirdPersonSystem.RollAbility>();
            if (m_Roll == null)
            {
                m_Roll = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.RollAbility>();
            }

            DiasGames.ThirdPersonSystem.CrouchAbility m_Crouch = character.GetComponent <DiasGames.ThirdPersonSystem.CrouchAbility>();
            if (m_Crouch == null)
            {
                m_Crouch = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.CrouchAbility>();
                m_Crouch.AbilityPhysicMaterial = groundFriction;
            }

            LayerMask m_FootLayers = (1 << 0) | (1 << 14) | (1 << 16) | (1 << 17) | (1 << 18) | (1 << 19) | (1 << 20);

            // Vault ability
            DiasGames.ThirdPersonSystem.ClimbingSystem.VaultAbility m_Vault = character.GetComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.VaultAbility>();
            if (m_Vault == null)
            {
                m_Vault = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.VaultAbility>();
            }

            m_Vault.ClimbingMask = (1 << 21);
            ////

            // Step Up ability Setup
            DiasGames.ThirdPersonSystem.ClimbingSystem.StepUpAbility m_StepUp = character.GetComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.StepUpAbility>();
            if (m_StepUp == null)
            {
                m_StepUp = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.StepUpAbility>();
            }

            m_StepUp.ClimbingMask = (1 << 16);
            ////

            // Half Climb ability Setup
            DiasGames.ThirdPersonSystem.ClimbingSystem.LowerClimbAbility m_LowerClimb = character.GetComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.LowerClimbAbility>();
            if (m_LowerClimb == null)
            {
                m_LowerClimb = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.LowerClimbAbility>();
            }

            m_LowerClimb.ClimbingMask = (1 << 17);
            ////

            // Climbing ability setup
            DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbingAbility m_Climbing = character.GetComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbingAbility>();
            if (m_Climbing == null)
            {
                m_Climbing = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbingAbility>();
            }

            m_Climbing.ClimbingMask = (1 << 18) | (1 << 19);
            m_Climbing.CameraData   = climbingCamera;
            ////

            DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbIK m_ClimbIK = character.GetComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbIK>();
            if (m_ClimbIK == null)
            {
                m_ClimbIK = character.AddComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbIK>();
            }

            m_ClimbIK.m_FeetLayers = m_FootLayers;

            DiasGames.ThirdPersonSystem.ClimbingSystem.DropToClimbAbility m_DropToClimb = character.GetComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.DropToClimbAbility>();
            if (m_DropToClimb == null)
            {
                m_DropToClimb = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.DropToClimbAbility>();
            }

            m_DropToClimb.DroppableLayer = (1 << 19) | (1 << 20);
            m_DropToClimb.CameraData     = climbingCamera;

            DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbLadderAbility m_Ladder = character.GetComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbLadderAbility>();
            if (m_Ladder == null)
            {
                m_Ladder = character.gameObject.AddComponent <DiasGames.ThirdPersonSystem.ClimbingSystem.ClimbLadderAbility>();
            }
            m_Ladder.CameraData = ladderCamera;


            // -------------------------- SET IGNORE ABILITIES ---------------------------------- //

            // Jump
            m_Jump.IgnoreAbilities = new List <DiasGames.ThirdPersonSystem.ThirdPersonAbility>();
            m_Jump.IgnoreAbilities.Add(m_Locomotion);

            // Roll
            m_Roll.IgnoreAbilities = new List <DiasGames.ThirdPersonSystem.ThirdPersonAbility>();
            m_Roll.IgnoreAbilities.Add(m_Locomotion);
            m_Roll.IgnoreAbilities.Add(m_Crouch);

            //Crouch
            m_Crouch.IgnoreAbilities = new List <ThirdPersonAbility>();
            m_Crouch.IgnoreAbilities.Add(m_Locomotion);

            // Climb ladder
            m_Ladder.IgnoreAbilities = new List <DiasGames.ThirdPersonSystem.ThirdPersonAbility>();
            m_Ladder.IgnoreAbilities.Add(m_Locomotion);
            m_Ladder.IgnoreAbilities.Add(m_Fall);
            m_Ladder.IgnoreAbilities.Add(m_Jump);

            // Step up
            m_StepUp.IgnoreAbilities = new List <DiasGames.ThirdPersonSystem.ThirdPersonAbility>();
            m_StepUp.IgnoreAbilities.Add(m_Locomotion);

            // Half climb
            m_LowerClimb.IgnoreAbilities = new List <DiasGames.ThirdPersonSystem.ThirdPersonAbility>();
            m_LowerClimb.IgnoreAbilities.Add(m_Locomotion);
            m_LowerClimb.IgnoreAbilities.Add(m_Fall);
            m_LowerClimb.IgnoreAbilities.Add(m_Jump);

            // Climbing
            m_Climbing.IgnoreAbilities = new List <DiasGames.ThirdPersonSystem.ThirdPersonAbility>();
            m_Climbing.IgnoreAbilities.Add(m_Fall);
            m_Climbing.IgnoreAbilities.Add(m_Jump);

            // Drop to climb
            m_DropToClimb.IgnoreAbilities = new List <DiasGames.ThirdPersonSystem.ThirdPersonAbility>();
            m_DropToClimb.IgnoreAbilities.Add(m_Locomotion);

            // Vault
            m_Vault.IgnoreAbilities = new List <ThirdPersonAbility>();
            m_Vault.IgnoreAbilities.Add(m_Locomotion);
            m_Vault.IgnoreAbilities.Add(m_Jump);
            m_Vault.IgnoreAbilities.Add(m_Fall);
            m_Vault.IgnoreAbilities.Add(m_Crouch);

            // -------------------------------------------------------------------------------- //
        }