c# - Prevent player from goes through the wall -
i want ask question. first of all, can detect player while player hit wall, not make player not goes through wall. how make player stop moving while player hit wall?
here screenshot (red capsule player):
the first image capsule collided brown wall imported object 3ds max , applied collider ticking check box shown on above image.
here code using:
using unityengine; using system.collections; [requirecomponent(typeof(charactercontroller))] public class checkplayer : monobehaviour { public float movespeed = 5.0f, rotationspeed = 5.0f; // define , set movement , rotation of player private void update() { // call movement , rotation function movement(); rotation(); } private void ontriggerenter(collider col) { // if game object collided tag if (col.gameobject.tag == "inn's objects") { // debug debug.log("you have collided object"); } // if game object colided tag if (col.gameobject.tag == "inn's door") { // load level gamemanager.loadlevel("third loading scene"); } } private void movement() { // if user press w on keyboard if (input.getkey(keycode.w)) { // move player forward transform.position -= vector3.forward * movespeed * time.deltatime; } // if user press on keyboard else if (input.getkey(keycode.a)) { // move player right transform.position += vector3.right * movespeed * time.deltatime; } // if user press s on keyboard else if (input.getkey(keycode.s)) { // move player backward transform.position += vector3.forward * movespeed * time.deltatime; } // if user press d on keyboard else if (input.getkey(keycode.d)) { // move player left transform.position -= vector3.right * movespeed * time.deltatime; } } private void rotation() { // if user press e on keyboard if (input.getkey(keycode.e)) { // rotate player right transform.rotate(-vector3.up * rotationspeed * time.deltatime); } // if user press q on keyboard else if (input.getkey(keycode.q)) { // rotate player left transform.rotate(vector3.up * rotationspeed * time.deltatime); } } }
any appreciated!
thank you
why using triggers walls? walls meant have colliison, use colliison mesh.
on side note, can log position of player @ point of collision, set movement-speed zero, reset position.
Comments
Post a Comment