Чтобы присесть в Unity, обычно необходимо изменить положение или масштаб персонажа игрока. Вот несколько методов, которые вы можете использовать для реализации приседания в Unity, а также примеры кода:
Метод 1: изменение позиции Y игрока
public class PlayerController : MonoBehaviour
{
private float crouchHeight = 0.5f;
private float standHeight = 1.0f;
private bool isCrouching = false;
void Update()
{
if (Input.GetKeyDown(KeyCode.C))
{
isCrouching = !isCrouching;
if (isCrouching)
{
transform.localScale = new Vector3(transform.localScale.x, crouchHeight, transform.localScale.z);
}
else
{
transform.localScale = new Vector3(transform.localScale.x, standHeight, transform.localScale.z);
}
}
}
}
Метод 2: изменение коллайдера игрока
public class PlayerController : MonoBehaviour
{
private Vector3 crouchScale = new Vector3(1.0f, 0.5f, 1.0f);
private Vector3 standScale = new Vector3(1.0f, 1.0f, 1.0f);
private bool isCrouching = false;
void Update()
{
if (Input.GetKeyDown(KeyCode.C))
{
isCrouching = !isCrouching;
if (isCrouching)
{
GetComponent<Collider>().enabled = false;
transform.localScale = crouchScale;
GetComponent<Collider>().enabled = true;
}
else
{
GetComponent<Collider>().enabled = false;
transform.localScale = standScale;
GetComponent<Collider>().enabled = true;
}
}
}
}
Метод 3. Изменение анимации игрока
public class PlayerController : MonoBehaviour
{
private Animator animator;
private bool isCrouching = false;
void Start()
{
animator = GetComponent<Animator>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.C))
{
isCrouching = !isCrouching;
animator.SetBool("IsCrouching", isCrouching);
}
}
}