c# - Crouch Script/ Scaling transform from one side only -
im trying make crouching script there's wrong code, i've been stuck in here many hours , still don't know what's wrong.
im trying decrease height of player transform crouch, , increase stand up.
here's code:
public float crouchspeed; public float crouchwalkspeed; public bool iscrouching = false; public bool iscrouched = false; void update () { crouch(); iscrouchingvoid(); } public void crouch() { if(input.getkeydown(keycode.leftcontrol) && isongroud) { iscrouched = !iscrouched; iscrouching = true; } } public void iscrouchingvoid() { if(!iscrouched) { if (iscrouching) { vector3 temp = transform.localscale; temp.y -= crouchspeed / 60; temp.x = 1f; temp.z = 1f; transform.localscale = temp; if (temp.y <= 0.5f) { temp.y = 0.5f; iscrouching = false; } } } else if(iscrouched) { if (iscrouching) { vector3 temp = transform.localscale; temp.y += crouchspeed / 60; temp.x = 1f; temp.z = 1f; transform.localscale = temp; if (temp.y >= 1f) { temp.y = 1f; iscrouching = false; } } } } thank you.
edit:
im using charactercontroller component using physics.capsulecast feature isn't option.
have tried using charactercontroller's height property?
you can reduce height in iscrouchingvoid() method instead of playing scale behaviour of crouching.
Comments
Post a Comment