Ragdoll 키고 끄는 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerRagdollController : MonoBehaviour
{
private Animator _animator;
private PlayerController _playerController;
[SerializeField] private Rigidbody[] _lagdollRigidbodies;
[SerializeField] private Collider[] _lagdollColliders;
Coroutine _co;
private void Start()
{
_animator = GetComponent<Animator>();
_playerController = GetComponent<PlayerController>();
SetRagdollState(false);
}
public void SetRagdollState(bool state)
{
_animator.enabled = !state;
foreach(Rigidbody rb in _lagdollRigidbodies)
{
rb.isKinematic = !state;
}
foreach(Collider col in _lagdollColliders)
{
col.enabled = state;
}
if (state && _co == null)
{
_co = StartCoroutine(ReleaseRagdoll());
}
}
IEnumerator ReleaseRagdoll()
{
_playerController.inputState = PlayerInputState.Locked;
yield return new WaitForSeconds(5f);
_animator.enabled = true;
foreach (Rigidbody rb in _lagdollRigidbodies)
{
rb.isKinematic = true;
}
foreach (Collider col in _lagdollColliders)
{
col.enabled = false;
}
_co = null;
_playerController.inputState = PlayerInputState.UnLocked;
}
}
'내일배움캠프(Unity)' 카테고리의 다른 글
숙련 주차 팀프로젝트 5 - 팀프로젝트 마무리 (0) | 2024.01.08 |
---|---|
숙련 주차 팀프로젝트 4 - 버그 수정, 플레이어를 무는 상어 (0) | 2024.01.05 |
숙련 주차 팀프로젝트 2 - Object Pool, 플레이어 튕겨내기, lagdoll (1) | 2024.01.03 |
숙련 주차 팀프로젝트 1 - 방해물 구현 (진자 운동 공, 튀어오르는 생선) (0) | 2024.01.02 |
TIL (0) | 2023.12.28 |