/// <summary> /// 仅仅创建一个模型 /// </summary> /// <param name="body"></param> /// <param name="weapon"></param> /// <param name="wing"></param> /// <returns></returns> public bool CreateAvatar(GameObject parent, List <SuitInfo> lstSuit, int nLayer = 0, Action <object> callback = null, object param = null) { m_CallBack = callback; m_Param = param; IRenderSystem rs = RareEngine.Instance().GetRenderSystem(); if (rs == null) { return(false); } for (int i = 0; i < lstSuit.Count; ++i) { m_lstSuitData.Add(new SuitData { info = lstSuit[i], obj = null, }); } m_nLayer = nLayer; for (int i = 0; i < m_lstSuitData.Count; ++i) { if (m_lstSuitData[i] == null) { continue; } if (m_lstSuitData[i].info.pos == SuitPos.Cloth) { //Engine.Utility.Log.Error("Create Body"); //先创建身体 rs.CreateRenderObj(ref m_lstSuitData[i].info.modelPath, ref m_obj, OnCreateBodyEvent, m_lstSuitData[i].info.pos, TaskPriority.TaskPriority_Normal, true); if (m_obj != null) { // 挂接父节点 Vector3 rot = m_obj.GetNode().GetTransForm().localEulerAngles; m_obj.GetNode().GetTransForm().parent = parent.transform; m_obj.GetNode().GetTransForm().localPosition = Vector3.zero; m_obj.GetNode().GetTransForm().localEulerAngles = rot; m_obj.GetNode().GetTransForm().localScale = Vector3.one; } else { Engine.Utility.Log.Error("obj is null path is " + m_lstSuitData[i].info.modelPath); } } } return(true); }