public EntityView CreateEntityView(EntityViewCreateCtx ctx) { EntityView view; switch (ctx.Type) { case EntityViewType.Hero: view = null; break; case EntityViewType.Monster: view = new MonsterView(); break; default: view = null; break; } if (view == null || !view.Init(ctx)) { return(null); } view.UID = GetUID(); m_EntityViewList.Add(view); return(view); }
public virtual bool Init(EntityViewCreateCtx ctx) { if (ctx.Owner == null) { return(false); } m_owner = ctx.Owner; m_EntityObj = new GameObject(); m_EntityObj.name = ctx.Name; return(true); }
public override bool Create(EntityCreateCtx ctx) { if (base.Create(ctx) == false) { Debug.LogError("Monster::Create 创建Monster失败 !!!"); return(false); } m_csvData = GameMgr.Instance.m_csvMgr.mMonsterCsv.Lookup(ctx.id); MoveSpeed = m_csvData.moveSpeed; SkillID = m_csvData.skillID; EnType = EntityType.Monster; EntityViewCreateCtx ctxView = new EntityViewCreateCtx(); ctxView.Owner = this; ctxView.Type = EntityViewType.Monster; ctxView.Name = "Monster_" + UID.ToString(); ctxView.ResName = m_csvData.resourceID; m_entityView = GameMgr.Instance.m_entityViewMgr.CreateEntityView(ctxView); if (m_entityView == null) { Debug.LogError("Monster::Create Monster failed !!!"); return(false); } m_entityView.SetParent(null); Position = ctx.pos; Direction = ctx.dir; m_Part[(int)EntityPartType.MovePart] = new MovePart(); if (m_Part[(int)EntityPartType.MovePart].Init(this) == false) { Debug.LogError("Monster::Create 移动部件初始化失败 !!!"); return(false); } m_Part[(int)EntityPartType.SkillPart] = new SkillPart(); if (m_Part[(int)EntityPartType.SkillPart].Init(this) == false) { Debug.LogError("Monster::Create 技能部件初始化失败 !!!"); return(false); } if (!m_fightProp.Init()) { Debug.LogError("Monster::Create初始化战斗属性失败 !!!"); return(false); } return(true); }
public override bool Init(EntityViewCreateCtx ctx) { if (!base.Init(ctx)) { return(false); } m_ModelObj = GameMgr.Instance.m_resMgr.LoadResource(ctx.ResName); if (m_ModelObj == null) { Debug.LogError("MonsterView::Init 加载模型预制失败 resPath=" + ctx.ResName); return(false); } m_ModelObj.name = ctx.Name; m_ModelObj.transform.SetParent(m_EntityObj.transform); InitAnimation(); return(true); }