Ejemplo n.º 1
0
        /// <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);
        }