private void OnChangeEquip(Engine.IRenderObj obj, object param) { EquipPos pos = (EquipPos)param; if (pos == EquipPos.EquipPos_Body) { m_RenderObj = m_PuppetObj.renderObj; if (m_RenderObj != null) { // 默认播放站立动作 m_RenderObj.Play(Client.EntityAction.Stand); m_RenderObj.SetLayer((int)Engine.RenderLayer.ShowModel); // showModel if (ufxid != 0) { //换了时装特效就不在新的RenderObj上了 重新挂一下 AddLinkEffectWithoutEntity(ufxid); } } if (m_Root != null && m_Camera != null) { m_Camera.transform.parent = m_Root.transform; m_RenderObj.GetNode().GetTransForm().parent = m_Root.transform; m_RenderObj.GetNode().SetLocalPosition(Vector3.zero); SetModelRotateY(m_fYAngle); m_RenderObj.GetNode().SetScale(Vector3.one); } } }
public static void EndDissolveEffect(Engine.IRenderObj obj) { if (obj == null) { return; } //UnityEngine.GameObject gameObject = obj.GetNode().GetTransForm().gameObject; if (obj.GetNode() == null) { return; } if (obj.GetNode().GetTransForm() == null) { return; } UnityEngine.GameObject gameObject = obj.GetNode().GetTransForm().gameObject; if (gameObject == null) { return; } DissolveScript[] component = gameObject.GetComponentsInChildren <DissolveScript>(true); for (int i = 0; i < component.Length; i++) { component[i].EndDissolve(); } }
///////////////////////////////////////////////////////////////////////////////////////////////////////// public bool Create(string strRenderObj, int nSize, GameObject parentObj) { Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem(); if (rs == null) { Engine.Utility.Log.Error("获取RenderSystem失败!"); return(false); } // 对象创建 if (m_Root == null) { m_Root = new GameObject("RTObj"); if (parentObj != null) { m_Root.transform.parent = parentObj.transform; } } // m_RenderObj = null; rs.CreateRenderObj(ref strRenderObj, ref m_RenderObj, CreateRenderObjEvent, null, Engine.TaskPriority.TaskPriority_Normal); if (m_RenderObj == null) { Engine.Utility.Log.Error("创建Renderobj失败{0}!", strRenderObj); return(false); } m_RenderObj.SetLayer((int)Engine.RenderLayer.ShowModel); // 默认播放站立动作 m_RenderObj.Play(Client.EntityAction.Stand); // CreateCamera Camera cam = CreateCamera(); // m_RenderText = new RenderTexture(nSize, nSize, 24, RenderTextureFormat.ARGB32); m_RenderText = RenderTexture.GetTemporary(nSize, nSize, 24, RenderTextureFormat.ARGB4444); if (m_RenderText == null) { return(false); } cam.targetTexture = m_RenderText; // 对象挂在父节点上 if (m_Root != null) { m_RenderObj.GetNode().GetTransForm().parent = m_Root.transform; m_Camera.transform.parent = m_Root.transform; } return(true); }
//------------------------------------------------------------------------------------------------------- /** * @brief 设置镜头参数 * @param tarOffset 镜头目标与模型原点偏移 * @param rotate 镜头的旋转参数 * @param fDistance 镜头与目标的距离 */ public void SetCamera(Vector3 tarOffset, Vector3 rotate, float fDistance) { // 计算位置 Vector3 offset = ClacCameraOffset(rotate, fDistance); Vector3 pos = tarOffset + offset; if (m_Camera != null && m_RenderObj != null && m_RenderObj.GetNode() != null && m_RenderObj.GetNode().GetTransForm() != null) { m_Camera.transform.localPosition = pos; m_Camera.transform.LookAt(m_RenderObj.GetNode().GetTransForm().position + tarOffset, Vector3.up); } }
public GameObject GetGameObject(string strName) { GameObject result = null; for (int i = 0; i < m_SequencerTempRender.Count; i++) { Engine.IRenderObj renderObj = m_SequencerTempRender[i]; if (renderObj != null) { if (renderObj.GetNode().GetTransForm().gameObject.name == strName) { result = renderObj.GetNode().GetTransForm().gameObject; return(result); } } } for (int i = 0; i < m_SequencerTempEntity.Count; i++) { Client.IEntity entity = m_SequencerTempEntity[i]; if (entity != null) { Engine.IRenderObj renderObj = entity.renderObj; if (renderObj != null) { if (renderObj.GetNode().GetTransForm().gameObject.name == strName) { result = renderObj.GetNode().GetTransForm().gameObject; return(result); } } } } return(null); }
public bool Create(List <GameCmd.SuitData> lstSuit, int nJob, int nSex, int nSize, GameObject parentObj, SkillSettingState eState = SkillSettingState.StateOne) { Engine.IRenderSystem rs = Engine.RareEngine.Instance().GetRenderSystem(); if (rs == null) { Engine.Utility.Log.Error("获取RenderSystem失败!"); return(false); } // 对象创建 if (m_Root == null) { m_Root = new GameObject("RTObj"); if (parentObj != null) { m_Root.transform.parent = parentObj.transform; } } // m_RenderObj = null; Client.IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem(); if (es == null) { return(false); } Client.EntityCreateData data = new Client.EntityCreateData(); data.ID = ++s_uPuppetID; data.strName = ""; //int speed = player.GetProp((int)WorldObjProp.MoveSpeed); data.PropList = new EntityAttr[(int)PuppetProp.End - (int)EntityProp.Begin]; int index = 0; data.PropList[index++] = new EntityAttr((int)PuppetProp.Job, nJob); data.PropList[index++] = new EntityAttr((int)PuppetProp.Sex, nSex); //data.PropList[index++] = new EntityAttr((int)EntityProp.BaseID, 0); //data.PropList[index++] = new EntityAttr((int)WorldObjProp.MoveSpeed, speed); data.eSkillState = eState; data.bViewModel = true; // 处理时装外观数据 EntityViewProp[] propList = new EntityViewProp[(int)Client.EquipPos.EquipPos_Max]; index = 0; propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Body, 0); propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Weapon, 0); if (lstSuit.Count > 0) { for (int i = 0; i < lstSuit.Count; ++i) { if (lstSuit[i] == null) { continue; } int pos = GetPropPos((Client.EquipPos)lstSuit[i].suit_type, propList); if (pos >= 0) { propList[pos] = new EntityViewProp((int)lstSuit[i].suit_type, (int)lstSuit[i].baseid); } else { Client.EquipPos equipPos = (Client.EquipPos)lstSuit[i].suit_type; propList[index++] = new EntityViewProp((int)equipPos, (int)lstSuit[i].baseid); } } } data.ViewList = propList; data.nLayer = LayerMask.NameToLayer("ShowModel"); m_PuppetObj = es.CreateEntity(Client.EntityType.EntityType_Puppet, data, true) as Client.IPuppet; if (m_PuppetObj == null) { Engine.Utility.Log.Error("创建Renderobj失败{0}!", ""); return(false); } m_RenderObj = m_PuppetObj.renderObj; if (m_RenderObj == null) { return(false); } // 默认播放站立动作 m_RenderObj.Play(Client.EntityAction.Stand); m_RenderObj.SetLayer((int)Engine.RenderLayer.ShowModel); // showModel // CreateCamera Camera cam = CreateCamera(); m_RenderText = new RenderTexture(nSize, nSize, 24, RenderTextureFormat.ARGB32); if (m_RenderText == null) { return(false); } cam.targetTexture = m_RenderText; // 对象挂在父节点上 if (m_Root != null) { m_RenderObj.GetNode().GetTransForm().parent = m_Root.transform; m_Camera.transform.parent = m_Root.transform; } return(true); }