Permalänk
Medlem

Unity3d Character Move

Tjenare jag igen med lite Unity3d problem!. Jag har gjort en helt vanlig Capsule som jag har dragit in the kamera som child + att dragit in detta script

public class Movement : MonoBehaviour { public float _rotationSpeed; public float _moveSpeed; private bool isGrounded = false; // Use this for initialization void Start () { print(Vector3.up); } // Update is called once per frame void Update () { if(Input.GetKey(KeyCode.A)){ transform.Rotate(Vector3.down * Time.deltaTime * _rotationSpeed); } if(Input.GetKey(KeyCode.D)){ transform.Rotate(Vector3.up * Time.deltaTime* _rotationSpeed); } if(Input.GetKey(KeyCode.Space) && isGrounded == true){ rigidbody.AddForce(Vector3.up * 100); } if(Input.GetKey(KeyCode.W)){ transform.position += transform.forward * _moveSpeed * Time.deltaTime; } if(Input.GetKey(KeyCode.S)){ transform.position += transform.forward * -_moveSpeed * Time.deltaTime; } } void OnCollisionEnter(Collision col){ if(col.transform.tag == "Floor"){ isGrounded = true; print("Enter Floor"); } } void OnCollisionExit(Collision col){ if(col.transform.tag == "Floor"){ isGrounded = false; print("Leave Floor"); } } }

Problemet med det hela är: när karaktären går in i något så ramlar den åt sidleds, jag vill att inget ska hända, den ska inte kunna röra sig för ett object som rör han. Karaktären har även en rigibbody med gravity på

Permalänk
Medlem

Hittade en lösning, jag la till en character controller. vilket gjorde att gubben ramlade rakt genom marken, då satte jag på "Is Kinematic" på rigidbodyn så att den inte skulle störa. Och sedan skrev jag ett nytt skrippt för att röra sig!