您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
53 行
1.4 KiB
53 行
1.4 KiB
using UnityEngine;
|
|
|
|
public class RagdollModule
|
|
{
|
|
public RagdollModule(GameWorld world)
|
|
{
|
|
m_world = world;
|
|
|
|
if (world.SceneRoot != null)
|
|
{
|
|
m_SystemRoot = new GameObject("RagdollSystem");
|
|
m_SystemRoot.transform.SetParent(world.SceneRoot.transform);
|
|
}
|
|
|
|
m_updateRagdolls = m_world.GetECSWorld().CreateManager<UpdateRagdolls>(m_world);
|
|
m_handleRagdollSpawn = m_world.GetECSWorld().CreateManager<HandleRagdollSpawn>(m_world, m_SystemRoot);
|
|
m_handleRagdollDespawn = m_world.GetECSWorld().CreateManager<HandleRagdollDespawn>(m_world);
|
|
}
|
|
|
|
public void Shutdown()
|
|
{
|
|
|
|
m_world.GetECSWorld().DestroyManager(m_updateRagdolls);
|
|
m_world.GetECSWorld().DestroyManager(m_handleRagdollSpawn);
|
|
m_world.GetECSWorld().DestroyManager(m_handleRagdollDespawn);
|
|
|
|
if(m_SystemRoot != null)
|
|
GameObject.Destroy(m_SystemRoot);
|
|
}
|
|
|
|
|
|
public void HandleSpawning()
|
|
{
|
|
m_handleRagdollSpawn.Update();
|
|
}
|
|
|
|
public void HandleDespawning()
|
|
{
|
|
m_handleRagdollDespawn.Update();
|
|
}
|
|
|
|
public void Update()
|
|
{
|
|
m_updateRagdolls.Update();
|
|
}
|
|
|
|
protected GameWorld m_world;
|
|
protected GameObject m_SystemRoot;
|
|
|
|
readonly UpdateRagdolls m_updateRagdolls;
|
|
readonly HandleRagdollSpawn m_handleRagdollSpawn;
|
|
readonly HandleRagdollDespawn m_handleRagdollDespawn;
|
|
}
|