private void HandleMovement() { if (pathVectorList != null) { Vector3 targetPosition = pathVectorList[currentPathIndex]; if (Vector3.Distance(transform.position, targetPosition) > 1f) { Vector3 moveDir = (targetPosition - transform.position).normalized; float distanceBefore = Vector3.Distance(transform.position, targetPosition); characterBase.PlayMoveAnim(moveDir); transform.position = transform.position + moveDir * SPEED * Time.deltaTime; } else { currentPathIndex++; if (currentPathIndex >= pathVectorList.Count) { StopMoving(); characterBase.PlayIdleAnim(); } } } else { characterBase.PlayIdleAnim(); } }
private void HandleMovement() { float moveX = 0f; float moveY = 0f; if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)) { moveY = +1f; } if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow)) { moveY = -1f; } if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) { moveX = -1f; } if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) { moveX = +1f; } Vector3 moveDir = new Vector3(moveX, moveY).normalized; bool isIdle = moveX == 0 && moveY == 0; if (isIdle) { playerBase.PlayIdleAnim(); } else { playerBase.PlayMoveAnim(moveDir); transform.position += moveDir * SPEED * Time.deltaTime; } }
private void HandleMovement() { if (Vector3.Distance(transform.position, targetPosition) > 1f) { Vector3 moveDir = (targetPosition - transform.position).normalized; playerBase.PlayMoveAnim(moveDir); transform.position += moveDir * SPEED * Time.deltaTime; } else { playerBase.PlayIdleAnim(); } }
private void FixedUpdate() { bool isIdle = moveDir.x == 0 && moveDir.y == 0; if (isIdle) { playerBase.PlayIdleAnim(); } else { playerBase.PlayMoveAnim(moveDir); //transform.position += moveDir * SPEED * Time.deltaTime; playerRigidbody2D.MovePosition(transform.position + moveDir * SPEED * Time.fixedDeltaTime); } }
private void ShootUnit(UnitGridCombat unitGridCombat, Action onShootComplete) { GetComponent <IMoveVelocity>().Disable(); Vector3 attackDir = (unitGridCombat.GetPosition() - transform.position).normalized; //UtilsClass.ShakeCamera(.6f, .1f); GameHandler_GridCombatSystem.Instance.ScreenShake(); characterBase.PlayShootAnimation(attackDir, (Vector3 vec) => { Shoot_Flash.AddFlash(vec); WeaponTracer.Create(vec, unitGridCombat.GetPosition() + GetRandomDir() * UnityEngine.Random.Range(-2f, 4f)); unitGridCombat.Damage(this, UnityEngine.Random.Range(4, 12)); }, () => { characterBase.PlayIdleAnim(); GetComponent <IMoveVelocity>().Enable(); onShootComplete(); }); }
private void Update() { switch (state) { case State.Normal: if (enemyRTS != null) { float attackRange = 70f; if (Vector3.Distance(transform.position, enemyRTS.GetPosition()) < attackRange) { MoveTo(transform.position); GetComponent <IMoveVelocity>().Disable(); Vector3 attackDir = (enemyRTS.GetPosition() - transform.position).normalized; UtilsClass.ShakeCamera(.6f, .1f); characterBase.PlayShootAnimation(attackDir, (Vector3 vec) => { Shoot_Flash.AddFlash(vec); WeaponTracer.Create(vec, enemyRTS.GetPosition()); enemyRTS.Damage(this, Random.Range(5, 15)); }, () => { characterBase.PlayIdleAnim(); GetComponent <IMoveVelocity>().Enable(); state = State.Normal; }); state = State.Attacking; } else { // Move Closer MoveTo(enemyRTS.GetPosition()); } } else { // No enemy } break; case State.Attacking: break; } }
private void Update() { if (isDead) { return; } if (IsGrounded()) { if (Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.UpArrow)) { float jumpVelocity = 100f; rigidbody2d.velocity = Vector2.up * jumpVelocity; } } HandleMovement(); // Set Animations if (IsGrounded()) { if (rigidbody2d.velocity.x == 0) { playerBase.PlayIdleAnim(); } else { playerBase.PlayMoveAnim(new Vector2(rigidbody2d.velocity.x, 0f)); } } else { playerBase.PlayJumpAnim(rigidbody2d.velocity); } if (rigidbody2d.velocity.y < -300f) { // Falling way too fast, dead Die(); } }
public void PlayIdleAnim() { characterAimBase.PlayIdleAnim(); playerBase.PlayIdleAnim(); }