public override void Initialize(ThirdPersonSystem mainSystem, AnimatorManager animatorManager, UnityInputManager inputManager)
        {
            base.Initialize(mainSystem, animatorManager, inputManager);

            m_ClimbJump = m_System.CharacterAbilities.Find(x => x is ClimbJump) as ClimbJump;
            m_WallRun   = m_System.CharacterAbilities.Find(x => x is WallRun) as WallRun;
        }
예제 #2
0
        public virtual void Initialize(ThirdPersonSystem mainSystem, AnimatorManager animatorManager, UnityInputManager inputManager)
        {
            m_System          = mainSystem;
            m_AnimatorManager = animatorManager;
            m_InputManager    = inputManager;

            m_InputToEnter = m_InputManager.GetInputReference(InputButton);
        }
예제 #3
0
        public void BuildCharacter()
        {
            zeroFriction   = AssetDatabase.LoadAssetAtPath <PhysicMaterial>("Assets/Dias Games/Third Person System/Physics Materials/ZeroFriction.physicMaterial");
            groundFriction = AssetDatabase.LoadAssetAtPath <PhysicMaterial>("Assets/Dias Games/Third Person System/Physics Materials/GroundFriction.physicMaterial");

            #region Set Tag and Layer

            character.tag   = "Player";
            character.layer = 15;

            #endregion

            #region Animator Builder
            m_Animator = character.GetComponent <Animator>();
            if (m_Animator == null)
            {
                m_Animator = character.AddComponent <Animator>();
            }

            m_Animator.updateMode = AnimatorUpdateMode.AnimatePhysics;

            m_Animator.runtimeAnimatorController = AssetDatabase.LoadAssetAtPath <RuntimeAnimatorController>("Assets/Dias Games/Climbing System/Animator/Climbing Animator.controller");

            #endregion

            #region Rigidbody Builder
            Rigidbody m_Rigidbody = character.GetComponent <Rigidbody>();
            if (m_Rigidbody == null)
            {
                m_Rigidbody = character.AddComponent <Rigidbody>();
            }

            m_Rigidbody.angularDrag = 0;
            m_Rigidbody.constraints = RigidbodyConstraints.FreezeRotation;
            #endregion

            #region Capsule Collider Builder
            CapsuleCollider m_Capsule = character.GetComponent <CapsuleCollider>();
            if (m_Capsule == null)
            {
                m_Capsule = character.AddComponent <CapsuleCollider>();
            }

            m_Capsule.radius   = 0.3f;
            m_Capsule.height   = 1.8f;
            m_Capsule.center   = new Vector3(0, m_Capsule.height * 0.5f, 0);
            m_Capsule.material = zeroFriction;
            #endregion

            #region Audio Builder

            AudioSource audio = character.GetComponent <AudioSource>();
            if (audio == null)
            {
                audio = character.AddComponent <AudioSource>();
            }
            audio.playOnAwake = false;

            #endregion

            #region Create Character Component

            ThirdPersonSystem m_Controller = character.GetComponent <ThirdPersonSystem>();
            if (m_Controller == null)
            {
                m_Controller = character.AddComponent <ThirdPersonSystem>();
            }

            m_Controller.GroundMask = (1 << 0) | (1 << 14) | (1 << 16) | (1 << 17) | (1 << 18) | (1 << 19) | (1 << 20);

            HealthManager healthManager = character.GetComponent <HealthManager>();
            if (healthManager == null)
            {
                healthManager = character.AddComponent <HealthManager>();
            }

            #endregion

            AddAbilities();
        }
예제 #4
0
        public override void Initialize(ThirdPersonSystem mainSystem, AnimatorManager animatorManager, UnityInputManager inputManager)
        {
            base.Initialize(mainSystem, animatorManager, inputManager);

            m_Camera = Camera.main.transform;
        }