Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using UnityEngine.AI;
- public class WalkState : CharacterState
- {
- public override void MovementMotor()
- {
- if (charManager.Destination == null)
- {
- float h = Input.GetAxis("Horizontal");
- float v = Input.GetAxis("Vertical");
- Vector3 camForward_Dir = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized;
- Vector3 move = v * camForward_Dir + h * Camera.main.transform.right;
- if (move.magnitude > 1f)
- move.Normalize();
- move = charManager.transform.InverseTransformDirection(move);
- float turnAmount = Mathf.Atan2(move.x, move.z);
- charManager.transform.Rotate(0, turnAmount * charManager.RotationSpeed * Time.deltaTime, 0);
- if (charManager._characterController.isGrounded)
- {
- charManager._moveDirection = transform.forward * move.magnitude;
- charManager._moveDirection *= charManager.Speed;
- }
- charManager._moveDirection.y -= charManager.Gravity * Time.deltaTime;
- if (move.magnitude <= 0)
- {
- ChangeState(charManager.Idle);
- return;
- }
- }
- if (charManager.Destination != null)
- {
- if (Vector3.Distance(charManager.Destination.position, charManager.transform.position) < 15)
- {
- charManager.skill = new Skill()
- {
- effectPrefab = Resources.Load("Effect1") as GameObject,
- animName = "attack1",
- skillType = SkillType.MAGIC,
- AttachPoint = GameManager.instance.playerList[charManager.myIndex].GetComponent<RFX4_EffectEvent>().AttachPoint,
- CharacterAttach = GameManager.instance.playerList[charManager.myIndex].GetComponent<RFX4_EffectEvent>().CharacterAttachPoint,
- target = GameManager.instance.playerList[charManager.myIndex].GetComponent<CombatScript>().selectedTarget
- };
- ChangeState(charManager.MagicCombatState);
- return;
- }
- else
- {
- charManager.navAgent.updateRotation = true;
- }
- }
- }
- public override void ProcessInput()
- {
- if (charManager._characterController.isGrounded)
- {
- if (Input.GetButton("Jump"))
- {
- charManager._moveDirection.y = charManager.JumpSpeed;
- ChangeState(charManager.JumpState);
- }
- }
- }
- public override void UpdateState()
- {
- //if(charManager.Destination == null)
- charManager._characterController.Move(charManager._moveDirection * Time.deltaTime);
- //else
- if (charManager.Destination != null)
- {
- if (Vector3.Distance(charManager.Destination.position, charManager.transform.position) > 15)
- {
- charManager.navAgent.SetDestination(charManager.Destination.position);
- }
- }
- }
- protected override void OnDisable()
- {
- charManager._animator.SetBool("run", false);
- }
- protected override void OnEnable()
- {
- charManager._animator.SetBool("run", true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement