반응형
코드 작성
using UnityEngine;
public class RagdollController : MonoBehaviour
{
// 레그돌로 전환할 때 비활성화할 컴포넌트들의 배열
private Rigidbody[] rigidbodies;
private Collider[] colliders;
// 레그돌 상태 여부를 나타내는 변수
private bool isRagdoll = false;
void Start()
{
// 레그돌로 전환할 때 비활성화할 컴포넌트들을 초기화
rigidbodies = GetComponentsInChildren<Rigidbody>();
colliders = GetComponentsInChildren<Collider>();
// 초기에는 레그돌을 비활성화
SetRagdollEnabled(false);
}
void Update()
{
// 예시: 특정 조건이 충족되면 레그돌로 전환
if (Input.GetKeyDown(KeyCode.Space))
{
ToggleRagdoll();
}
}
void ToggleRagdoll()
{
isRagdoll = !isRagdoll;
// 레그돌 상태에 따라 레그돌을 활성화 또는 비활성화
SetRagdollEnabled(isRagdoll);
}
void SetRagdollEnabled(bool enable)
{
// 레그돌 상태에 따라 Rigidbody와 Collider를 활성화 또는 비활성화
foreach (Rigidbody rb in rigidbodies)
{
rb.isKinematic = !enable;
}
foreach (Collider col in colliders)
{
col.enabled = enable;
}
}
}
반응형