예제 #1
0
    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);
    }
예제 #2
0
    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);
    }
예제 #3
0
파일: Monster.cs 프로젝트: fdgggy/Adventure
    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);
    }
예제 #4
0
    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);
    }