public void ResetRagdoll()
    {
        m_Alpha          = PEUtil.GetCmpt <StandardAlphaAnimator>(transform);
        m_Renderers      = PEUtil.GetCmpts <Renderer>(transform);
        m_Colliders      = PEUtil.GetCmpts <Collider>(transform);
        slaveRigidBodies = PEUtil.GetCmpts <Rigidbody>(transform);
        if (0 < slaveRigidBodies.Length)
        {
            ragdollRootBone = slaveRigidBodies[0].transform;
        }

        animFollow = GetComponent <AnimFollow_AF>();
        if (null != animFollow)
        {
            master = animFollow.master;
        }
        if (null != master)
        {
            masterRootBone = PETools.PEUtil.GetChild(master.transform, ragdollRootBone.name);
            anim           = PEUtil.GetCmpt <Animator>(master.transform);
        }
        if (m_RagdollEffect == null)
        {
            m_RagdollEffect = gameObject.AddComponent <PERagdollEffect>();
        }

        if (m_RagdollEffect != null)
        {
            m_RagdollEffect.ResetRagdoll();
        }
    }
    public void ResetView()
    {
        if (!s_Enable)
        {
            return;
        }

        if (m_SkinnedRenderer == null)
        {
            m_SkinnedRenderer = gameObject.GetComponent <SkinnedMeshRenderer>();
        }

        foreach (Material mat in m_SkinnedRenderer.materials)
        {
            StandardAlphaAnimator.SetupMaterialWithBlendMode(mat, (StandardAlphaAnimator.BlendMode)mat.GetFloat("_Mode"));
        }

        foreach (Material mat in m_SkinnedRenderer.materials)
        {
            Color color = mat.GetColor("_Color");
            color.a = 1;
            mat.SetColor("_Color", color);
        }
        m_SkinnedRenderer.enabled = true;
    }
//	void InitAll()
//	{
//		m_renderers = GetComponentsInChildren<Renderer>();	// not put this in loop because unreasonable memory allocated
//		for (int i = 0; i < m_renderers.Length; i++) {
//			if(m_renderers[i] is SkinnedMeshRenderer){
//				m_Alpha = m_renderers[i].GetComponent<StandardAlphaAnimator>();
//				if(m_Alpha != null)
//					break;
//			}
//		}
//		m_Colliders.Clear ();
//		GetComponentsInChildren<Collider> (m_Colliders);
//	}

    void InitRenderers()
    {
        m_Renderers = PETools.PEUtil.GetCmpts <Renderer>(transform);
        for (int i = 0; i < m_Renderers.Length; i++)
        {
            if (m_Renderers[i] is SkinnedMeshRenderer)
            {
                m_Alpha = m_Renderers[i].GetComponent <StandardAlphaAnimator>();
                if (m_Alpha != null)
                {
                    break;
                }
            }
        }
    }