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(); }
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); // -------------------------------------------------------------------------------- // }