private void followActor() { if (ActorToFollow != null) { float distanceToActor = Vector3.Distance(ActorToFollow.transform.position, transform.position); if (distanceToActor > minFollowDistance && distanceToActor <= maxFollowDistance) { Vector3 directionToActor = ActorToFollow.transform.position - transform.position; human.moveInDirection(directionToActor.normalized); return; } } human.moveInDirection(Vector3.zero); }
private void movement() { // read inputs float h = CrossPlatformInputManager.GetAxis("Horizontal"); float v = CrossPlatformInputManager.GetAxis("Vertical"); bool crouch = Input.GetKey(KeyCode.C); // calculate move direction to pass to character if (m_Cam != null) { // calculate camera relative direction to move: m_CamForward = Vector3.Scale(m_Cam.forward, new Vector3(1, 0, 1)).normalized; m_Move = v * m_CamForward + h * m_Cam.right; } else { // we use world-relative directions in the case of no main camera m_Move = v * Vector3.forward + h * Vector3.right; } #if !MOBILE_INPUT // walk speed multiplier if (Input.GetKey(KeyCode.LeftShift)) { m_Move *= 0.4f; } #endif // pass all parameters to the character control script human.moveInDirection(m_Move); m_Jump = false; }