- Home /
Question by
Frenchyboy123456 · Apr 24, 2020 at 09:04 AM ·
3dfpscrouching
Crouch Script that doesn't clip into the object above you when uncrouching.
I've been searching for a decent toggle-able crouch script for AGES, and a few have worked in the past, but now with what I'm assuming is newer versions, they don't work anymore. Here's the one that worked before (by KINDOK and Zodiarc). using UnityEngine; using System.Collections; using UnityStandardAssets.Characters.FirstPerson;
public class Crouch_func : MonoBehaviour {
// PUBLIC VARS //
public Transform t_mesh; // Player Transform
public CharacterController ccr_controller; // Get the character controller
public bool IsCrouch = false; //
public float LocalScaleY; // Y scale of "t_mesh"
public float ControllerHeight; // Y scale of the character controller
// PRIVATE VARS //
void Start()
{
//nothing here yet
}
void Update()
{
if(Input.GetButtonDown("Crouch"))
{
IsCrouch = !IsCrouch;
CrouchFunction();
}
}
void CrouchFunction()
{
if(IsCrouch == true)
{
t_mesh.localScale = new Vector3(1, LocalScaleY, 1);
ccr_controller.height = ControllerHeight;
Debug.Log("c_func 1");
}
else
{
Ray ray = new Ray();
RaycastHit hit;
ray.origin = transform.position;
ray.direction = Vector3.up;
if(!Physics.Raycast(ray, out hit, 1)){
t_mesh.localScale = new Vector3(1, 1, 1);
ccr_controller.height = 1.8f;
Debug.Log("c_func 0");
} else {
Debug.Log("Not enough space to stand up!);
}
}
}
}
I was able to define the t_mesh variable previously by just a copy of the ground, and now that doesn't work. Pls help...
Comment
Your answer
Follow this Question
Related Questions
Enemy Will not die 1 Answer
3D character mesh ignoring transform values and rotating without the rig 0 Answers
How do I make sliding last for a definite number of time 1 Answer
how to resize a decal 0 Answers
Trace 3D Basketball Shot 1 Answer