Quantcast
Channel: Questions in topic: "character-animation"
Viewing all articles
Browse latest Browse all 114

Why my character walking weird??

$
0
0
I trying to make camera with which will be rotating vertical + horisontal, sth like Alice: Madness Return (rotate around the player without rotating player). For now I have typical TPP camera, like Gothic or Morrowind. I just combined Unity STD Assets FPP with TPP, and I have now camera from player's back, but sth is bad with moving animations. Seemingly al it's ok: character moving and camera follows and rotate, but... in other games player's moving looks different. Better. =__=" Here's my code, U can to change it with Unity STD 3rd Person Controller -> ThirdPersonUserControl for a moment and then U can see my character is retarded. .___., edit: The // *** means lines which I copied from Unity STD Assets / FPP / CameraLook using System; using UnityEngine; using UnityStandardAssets.CrossPlatformInput; // *** using UnityStandardAssets.Characters.FirstPerson; namespace UnityStandardAssets.Characters.ThirdPerson { [RequireComponent(typeof (ThirdPersonCharacter))] public class ThirdPersonUserControl : MonoBehaviour { private ThirdPersonCharacter m_Character; // A reference to the ThirdPersonCharacter on the object private Transform m_Cam; // A reference to the main camera in the scenes transform private Vector3 m_CamForward; // The current forward direction of the camera private Vector3 m_Move; private bool m_Jump; // the world-relative desired move direction, calculated from the camForward and user input.\ // *** private Camera m_Camera; private Vector3 m_OriginalCameraPosition; [SerializeField] private MouseLook m_MouseLook; private void Start() { // *** m_Camera = Camera.main; m_OriginalCameraPosition = m_Camera.transform.localPosition; m_MouseLook.Init(transform, m_Camera.transform); /* // get the transform of the main camera if (Camera.main != null) { m_Cam = Camera.main.transform; } else { Debug.LogWarning( "Warning: no main camera found. Third person character needs a Camera tagged \"MainCamera\", for camera-relative controls."); // we use self-relative controls in this case, which probably isn't what the user wants, but hey, we warned them! } */ // get the third person character ( this should never be null due to require component ) m_Character = GetComponent(); } private void Update() { // *** RotateView(); if (!m_Jump) { m_Jump = CrossPlatformInputManager.GetButtonDown("Jump"); } } // Fixed update is called in sync with physics private void FixedUpdate() { // 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.5f; #endif // pass all parameters to the character control script m_Character.Move(m_Move, crouch, m_Jump); m_Jump = false; } // *** private void RotateView() { m_MouseLook.LookRotation(transform, m_Camera.transform); } } }

Viewing all articles
Browse latest Browse all 114

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>