void Update() { m_pAnimator.Update(); if (Input.GetMouseButtonDown(0)) { isMouseDown = true; } if (Input.GetMouseButtonUp(0)) { isMouseDown = false; } if (isMouseDown) { RaycastHit hit; Ray ray = followCamera.ScreenPointToRay(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0)); if (Physics.Raycast(ray, out hit, 100, (1 << TERRAIN_LAYER))) { moveToPoint = hit.point; canMove = true; dir = Vector3.Normalize(moveToPoint - transform.position); Quaternion rot = transform.rotation; Quaternion target = Quaternion.LookRotation(dir); Vector3 euler = target.eulerAngles; euler.z = 0; euler.x = 0; rot = Quaternion.Euler(euler); transform.rotation = rot; currentHeroState = heroState.run; } } if (!canMove && !isGround) { return; } if (Vector3.Distance(moveToPoint, transform.position) < 0.5f) { canMove = false; currentHeroState = heroState.idle; } else { Vector3 m = dir * speed * Time.deltaTime; m.y = 0; flags = GetComponent <CharacterController>().Move(m); } }
void Update() { m_pAnimator.Update(); if (Input.GetMouseButtonDown(0)) { isMouseDown = true; } if (Input.GetMouseButtonUp(0)) { isMouseDown = false; } if (isMouseDown) { RaycastHit hit; Ray ray = followCamera.ScreenPointToRay(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0)); if (Physics.Raycast(ray, out hit, 1 << TERRAIN_LAYER)) { moveToPoint = hit.point; canMove = true; m_nma.SetDestination(moveToPoint); currentHeroState = heroState.run; } } if (!canMove && !isGround) { return; } if (Vector3.Distance(moveToPoint, transform.position) < 0.5f) { canMove = false; currentHeroState = heroState.idle; } }
// Update is called once per frame void Update() { if (Time.deltaTime > 0 && unit.moveSpeed > 0) { sprite.Resume(); if (unit.HP < unit.maxHP) hpRegen(); if (wait) { if (sprite.CurrentFrame().index == lastFrame) { actionChooser(); wait = false; } } //handle input else if(unit_type == Unit.type.hero) { //handle attack if (Input.GetKeyDown(KeyCode.Z)) { sprite.PlayOnce("hero-attack"); lastFrame = 5; wait = true; currentState = heroState.attacking; } //handle skills else if (Input.GetKeyDown(KeyCode.X) || skill1Triggered) { sprite.PlayOnce("hero-cast"); lastFrame = 22; wait = true; currentState = heroState.castingSpell1; } else if (Input.GetKeyDown(KeyCode.C) || skill2Triggered) { sprite.PlayOnce("hero-cast"); lastFrame = 22; wait = true; currentState = heroState.castingSpell2; } else if (Input.GetKeyDown(KeyCode.V) || skill3Triggered) { sprite.PlayOnce("hero-cast"); lastFrame = 22; wait = true; currentState = heroState.castingSpell3; } //handle movement else if (Input.GetKey(KeyCode.LeftArrow)) { if (sprite.transform.position.x > -(levelLength)) move(-Vector3.right); } else if (Input.GetKey(KeyCode.RightArrow)) { if (sprite.transform.position.x < levelLength) move(Vector3.right); } else if (Input.GetKey(KeyCode.UpArrow)) { if (sprite.transform.position.z < 90) move(Vector3.forward); } else if (Input.GetKey(KeyCode.DownArrow)) { if (sprite.transform.position.z > -90) move(-Vector3.forward); } else { sprite.PlayLoop("hero-idle"); } } } else sprite.Pauze(); }