コード例 #1
0
    void CreateBlood(Vector3 pos)
    {
        GameObject blood       = prefabManager.GetPrefab("BloodEffect");
        GameObject bloodEffect = Instantiate(blood, pos, new Quaternion(0, 0, 0, 0));

        Destroy(bloodEffect, 3f);
    }
コード例 #2
0
    IEnumerator Init()
    {
        for (long i = 0; i < 200; i++)
        {
            CardList.Add(i);
        }

        var menu   = PrefabManager.InstantiateOn(PrefabModel.Path.Menu, MainSequence.Instance.Canvas.transform).GetComponent <EndlessGrid>();
        var select = false;

        menu.InitOnStart   = false;
        menu.ViewItemCount = 15;
        menu.ItemPrefab    = PrefabManager.GetPrefab(PrefabModel.Path.Button);
        menu.OnUpdateElement.AddListener((go, index) =>
        {
            go.GetComponent <AsyncButtonUI>().StartLoadingAndSetText($"id:{CardList[index]}");
            go.GetComponent <AsyncButtonUI>().Button.onClick.RemoveAllListeners();
            go.GetComponent <AsyncButtonUI>().Button.onClick.AddListener(() =>
            {
                select = true;
            });
        });
        menu.AllItemCount = CardList.Count;
        menu.Initialize();
        yield return(null);
    }
コード例 #3
0
    private IEnumerator DelayedPlayerStart()
    {
        yield return(new WaitForSeconds(1f));

        _playerPiece = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.PlayerPiece), Vector3.zero, Quaternion.identity)
                       .GetComponent <PlayerPieceController>();

        if (GridLevel == 2)
        {
            _playerPiece.ConvertPlayerPieceType(PlayerPieceController.PlayerPieceType.Destroy);
        }
        else if (GridLevel == 3)
        {
            _playerPiece.ConvertPlayerPieceType(PlayerPieceController.PlayerPieceType.Mirror);

            _playerMirrorPiece = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.PlayerPiece), Vector3.zero, Quaternion.identity)
                                 .GetComponent <PlayerPieceController>();

            _playerMirrorPiece.ConvertPlayerPieceType(PlayerPieceController.PlayerPieceType.Mirror);

            _playerMirrorPiece.PlaceOnTop(ActiveGrid.Pieces[4, 4]);
        }

        _playerPiece.PlaceOnTop(ActiveGrid.Pieces[0, 0]);
    }
コード例 #4
0
ファイル: LogScript.cs プロジェクト: thegreatpl/LD42-SERL
    // Use this for initialization
    void Start()
    {
        PingLocation = Vector3Int.zero;
        TextObj      = PrefabManager.GetPrefab("LogItem");

        Application.logMessageReceived += Application_logMessageReceived;
    }
コード例 #5
0
    void Destroy()
    {
        Vector2 pos = gameObject.transform.position;

        Instantiate(prefabManager.GetPrefab("explosion"), new Vector2(pos.x, pos.y - 0.2f), Quaternion.identity);
        Destroy(gameObject);
    }
コード例 #6
0
    private void PlaceCivsOnPiece(PieceController pieceController)
    {
        _currentCiv = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.PlayerCivs_Three));

        _currentCiv.transform.position = pieceController.transform.position + _currentCiv.transform.GetChild(0).localScale.x *Vector3.up;

        _currentCiv.transform.position += Vector3.up * 0.9f + Vector3.back * 0.6f + Vector3.left * 0.2f;
    }
コード例 #7
0
 internal void eraserAttach()
 {
     eraser = GameObject.Instantiate(PrefabManager.GetPrefab("Eraser2Prefab")).GetComponent <eraserBehave>();
     eraser.transform.position      = palmAttachment.position;
     eraser.transform.localPosition = new Vector3(0, 1, 0);
     eraser.transform.parent        = palmAttachment;
     eraser.follow(palmAttachment);
     eraser.hideMesh();
 }
コード例 #8
0
    private PieceController CreatePieceOnGrid(Vector2Int position)
    {
        PieceController testPiece = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.FloorPiece), Vector3.zero, Quaternion.identity)
                                    .GetComponent <PieceController>();

        testPiece.PlaceOnTop(ActiveGrid.Pieces[position.x, position.y]);

        return(testPiece);
    }
コード例 #9
0
ファイル: StarSystem.cs プロジェクト: thegreatpl/LD42-SERL
    /// <summary>
    /// Initiliazes the cursor.
    /// </summary>
    public void InitCursor(Vector3 location)
    {
        Cursor = PrefabManager.GetPrefab("Cursor");
        var cur        = Instantiate(Cursor, location, Cursor.transform.rotation);
        var controller = cur.GetComponent <CursorController>();

        controller.StarSystem = this;
        controller.Camera     = Camera;
        MenuManager.Cursor    = controller;
    }
コード例 #10
0
    void Start()
    {
        currentHealth    = startHealth;
        currentMoveSpeed = startMoveSpeed;
        currentDamage    = startDamage;
        currentEXP       = startEXP;
        currentFund      = startFund;

        prefabManager = PrefabManager.GetInstance();
        enemies.Add(prefabManager.GetPrefab("Zombie"));
    }
コード例 #11
0
    private IEnumerator FirstLevelStart()
    {
        yield return(new WaitForSeconds(0.5f));

        FirstLevelPlayer.SetActive(true);

        ThisIsYouArrow.SetActive(true);
        ThisIsYouText.SetActive(true);

        yield return(new WaitForSeconds(1.5f));

        FirstLevelPlayer.GetComponent <PieceController>().Obliviate();

        ThisIsYouArrow.GetComponent <Animator>().SetTrigger("Switch");
        ThisIsYouText.GetComponent <Animator>().SetTrigger("Switch");

        yield return(new WaitForSeconds(0.5f));

        ThisIsYouArrow.SetActive(false);
        ThisIsYouText.SetActive(false);

        yield return(new WaitForSeconds(0.8f));

        YourHomeArrow.SetActive(true);
        YourHomeText.SetActive(true);

        List <PieceController> solutionPieces = new List <PieceController>();

        ActiveGrid = _gridGenerator.GenerateGrid(3, 3);

        solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(2, 2))));
        solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(2, 2))));
        solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(1, 2))));
        solutionPieces.Add(ActiveGrid.AddPlayingPiece(CreatePieceOnGrid(new Vector2Int(2, 1))));

        ActiveGrid.GSolution = new GridGenerator.GridSolution(solutionPieces);

        PlaceCivsOnPiece(ActiveGrid.Pieces[1, 1]);

        yield return(new WaitForSeconds(1f));

        YourHomeArrow.GetComponent <Animator>().SetTrigger("Switch");
        YourHomeText.GetComponent <Animator>().SetTrigger("Switch");

        yield return(new WaitForSeconds(0.5f));

        YourHomeArrow.SetActive(false);
        YourHomeText.SetActive(false);

        _meteor = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.Meteor)).GetComponent <MeteorController>();

        StartCoroutine(MeteorPause());
    }
コード例 #12
0
ファイル: WeaponBase.cs プロジェクト: nprsd/ZombiesByNP
    void CreateBlood(Vector3 pos, Vector3 normal)
    {
        GameObject blood       = prefabManager.GetPrefab("BloodEffect");
        GameObject bloodEffect = Instantiate(blood, pos, Quaternion.LookRotation(normal));

        Destroy(bloodEffect, 0.5f);
    }
コード例 #13
0
    void Start()
    {
        currentHealth    = startHealth;
        currentMoveSpeed = startMoveSpeed;
        currentDamage    = startDamage;
        currentEXP       = startEXP;
        currentFund      = startFund;

        prefabManager = PrefabManager.GetInstance();
        enemies.Add(prefabManager.GetPrefab("Zombie"));

        gameManager = GameObject.Find("GameManager").GetComponent <GameManager>();
    }
コード例 #14
0
    public Grid GenerateGrid(int width, int height)
    {
        PieceController[,] pieces = new PieceController[width, height];

        for (int i = 0; i < width; i++)
        {
            for (int j = 0; j < height; j++)
            {
                pieces[i, j] = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.FloorPiece)
                                           , Vector3.right * (i * _pieceOffset.x) + Vector3.forward * (j * _pieceOffset.z)
                                           , Quaternion.identity).GetComponent <PieceController>();
            }
        }

        return(new Grid(pieces));
    }
コード例 #15
0
    IEnumerator NestTest()
    {
        yield return(DialogSingleton.OpenModal(new Dialog.InputData <DialogMessageAndButton>()
        {
            SetContentsPrefab = PrefabManager.GetPrefab(PrefabModel.Path.DialogNormal)
                                .GetComponent <DialogMessageAndButton>(),
            SetContentsInit = dialog =>
            {
                dialog.Init(new List <MessageSet>()
                {
                    new MessageSet()
                    {
                        Name = "Test",
                        Message = "ネストで開くことも可能です。キャンセルするまで無限に開きます。",
                        Button = new Dictionary <string, Func <bool> >()
                        {
                            {
                                "Next", () =>
                                {
                                    dialog.DoNext();
                                    return false;
                                }
                            },
                            {
                                "Cancel", () => true
                            },
                        },
                    },
                    new MessageSet()
                    {
                        Name = "Test",
                        Message = "",

                        AsyncAction = NestTest(),
                        Action = DialogSingleton.Close
                    }
                });
            }
        }));
    }
コード例 #16
0
    /// <summary>
    /// Spawns in a new entity with the chosen AI.
    /// </summary>
    /// <param name="AI"></param>
    /// <param name="location"></param>
    /// <param name="animatorLayers"></param>
    /// <returns></returns>
    IEnumerator SpawnEntity(string AI, Vector3 location, bool?ismale = null, Dictionary <string, string> animatorLayers = null)
    {
        var prefab = PrefabManager.GetPrefab("Entity");
        var newEnt = Instantiate(prefab, location, prefab.transform.rotation);

        yield return(null);

        if (!ismale.HasValue)
        {
            ismale = Helper.RandomBool();
        }

        var playerAnimator = newEnt.GetComponent <EntityAnimationController>();

        if (animatorLayers == null)
        {
            playerAnimator.SetAnimation(AnimationManager.GetRandomElementForLayer("body", ismale.Value));
            playerAnimator.SetAnimation(AnimationManager.GetRandomElementForLayer("hair", ismale.Value), Helper.RandomColor());
            playerAnimator.SetAnimation(AnimationManager.GetRandomElementForLayer("chest", ismale.Value));
            playerAnimator.SetAnimation(AnimationManager.GetRandomElementForLayer("legs", ismale.Value), Helper.RandomColor());
        }
        else
        {
            if (animatorLayers.ContainsKey("body"))
            {
                playerAnimator.SetAnimation(AnimationManager.GetAnimation(animatorLayers["body"]));
            }
            else
            {
                playerAnimator.SetAnimation(AnimationManager.GetRandomElementForLayer("body", ismale.Value));
            }

            if (animatorLayers.ContainsKey("hair"))
            {
                playerAnimator.SetAnimation(AnimationManager.GetAnimation(animatorLayers["hair"]));
            }
            else
            {
                playerAnimator.SetAnimation(AnimationManager.GetRandomElementForLayer("hair", ismale.Value), Helper.RandomColor());
            }

            if (animatorLayers.ContainsKey("chest"))
            {
                playerAnimator.SetAnimation(AnimationManager.GetAnimation(animatorLayers["chest"]));
            }
            else
            {
                playerAnimator.SetAnimation(AnimationManager.GetRandomElementForLayer("chest", ismale.Value));
            }

            if (animatorLayers.ContainsKey("legs"))
            {
                playerAnimator.SetAnimation(AnimationManager.GetAnimation(animatorLayers["legs"]));
            }
            else
            {
                playerAnimator.SetAnimation(AnimationManager.GetRandomElementForLayer("legs", ismale.Value));
            }
        }

        switch (AI)
        {
        case "player":
            newEnt.AddComponent <Player>();
            break;

        case "civilian":
            newEnt.AddComponent <Civilian>();
            break;
        }
    }
コード例 #17
0
        public static IntersectionPolygon Constructor()
        {
            GameObject go = GameObject.Instantiate(PrefabManager.GetPrefab("IntersectionPolygon"));

            return(go.GetComponent <IntersectionPolygon>());
        }
コード例 #18
0
    private IEnumerator MeteorPause()
    {
        if (GridLevel != 1)
        {
            yield return(new WaitForSeconds(3f));

            _meteor = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.Meteor)).GetComponent <MeteorController>();
        }

        yield return(new WaitForSeconds(0.9f));

        GameObject manualPivot = new GameObject("ManualPivot");

        if (_firstPlay)
        {
            manualPivot.transform.position = CameraController.Instance.Pivot;

            CameraController.Instance.ManualPivot = manualPivot.transform;

            _meteor.PauseMeteor();

            MeteorArrow.SetActive(true);
            MeteorText.SetActive(true);

            for (int i = 0; i < Instance._currentCiv.transform.childCount; i++)
            {
                Instance._currentCiv.transform.GetChild(i).GetComponent <PlayerCivController>().Pause = true;
            }

            while (Vector3.Distance(manualPivot.transform.position, _meteor.transform.position) > 0.1f)
            {
                manualPivot.transform.position = Vector3.MoveTowards(manualPivot.transform.position, _meteor.transform.position, 0.5f);

                yield return(null);
            }
        }

        yield return(new WaitForSeconds(0.5f));

        if (GridLevel == 2)
        {
            CreatePieceOnGrid(new Vector2Int(2, 2)).ConvertPieceType(PieceController.PieceType.MeteorResidue);
        }

        yield return(new WaitForSeconds(1f));

        if (_firstPlay)
        {
            MeteorArrow.GetComponent <Animator>().SetTrigger("Switch");
            MeteorText.GetComponent <Animator>().SetTrigger("Switch");

            yield return(new WaitForSeconds(0.5f));

            MeteorArrow.SetActive(false);
            MeteorText.SetActive(false);

            _meteor.ResumeMeteor();

            Vector3 targetPosition = ActiveGrid.CenterPosition + Vector3.up * 0.8f;

            while (Vector3.Distance(manualPivot.transform.position, targetPosition) > 0.1f)
            {
                manualPivot.transform.position = Vector3.MoveTowards(manualPivot.transform.position, targetPosition, 0.5f);

                yield return(null);
            }

            Destroy(manualPivot);
        }

        if (_firstPlay)
        {
            RebuildText.SetActive(true);

            yield return(new WaitForSeconds(0.9f));
        }

        _gameStarted = true;

        _firstPlay = false;

        yield return(new WaitForSeconds(2f));

        if (_firstPlay)
        {
            RebuildText.GetComponent <Animator>().SetTrigger("Switch");
        }
        else
        {
            Destroy(manualPivot);
        }

        yield return(new WaitForSeconds(0.5f));

        if (_firstPlay)
        {
            RebuildText.SetActive(false);
        }
    }
コード例 #19
0
ファイル: Tooltip.cs プロジェクト: haihala/intratorn
 void Start()
 {
     tooltip_prefab = PrefabManager.GetPrefab("UI/Inventory/Tooltip");
     canvas         = GameObject.Find("Canvas").transform;
 }
コード例 #20
0
    private void Update()
    {
        int x = (int)Input.GetAxisRaw("Horizontal");
        int z = (int)Input.GetAxisRaw("Vertical");

        if (Input.GetKeyDown(KeyCode.G))
        {
            if (_meteor == null)
            {
                _meteor = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.Meteor)).GetComponent <MeteorController>();

                StartCoroutine(MeteorPause());

                _gameStarted = false;
            }
            return;
        }

        if (Input.GetKeyDown(KeyCode.R))
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
        }


        if (!_gameStarted)
        {
            return;
        }

        if (Input.anyKeyDown)
        {
            if (_playerMoving)
            {
                return;
            }

            if (Mathf.Abs(x) > 0f || Mathf.Abs(z) > 0f)
            {
                if (_playerPiece.PPieceType == PlayerPieceController.PlayerPieceType.Mirror)
                {
                    PieceController nextPiece = ActiveGrid.ProcessInput(_playerPiece.GridPosition, new Vector2Int(x, z));

                    if (nextPiece != null)
                    {
                        StartCoroutine(AnimatePlayerMovement(_playerPiece, nextPiece));
                    }

                    nextPiece = ActiveGrid.ProcessInput(_playerMirrorPiece.GridPosition, new Vector2Int(x * -1, z * -1));

                    if (nextPiece != null)
                    {
                        StartCoroutine(AnimatePlayerMovement(_playerMirrorPiece, nextPiece));
                    }
                }
                else
                {
                    PieceController nextPiece = ActiveGrid.ProcessInput(_playerPiece.GridPosition, new Vector2Int(x, z));

                    if (nextPiece != null)
                    {
                        StartCoroutine(AnimatePlayerMovement(_playerPiece, nextPiece));
                    }
                }
            }

            if (Input.GetKeyDown(KeyCode.Space))
            {
                if (_playerPiece.PPieceType == PlayerPieceController.PlayerPieceType.Destroy)
                {
                    PieceController destroyedPiece = _playerPiece.DestroyAction();

                    if (destroyedPiece != null)
                    {
                        ActiveGrid.PlayingPieces.Remove(destroyedPiece);
                    }
                }
                else if (_playerPiece.PPieceType == PlayerPieceController.PlayerPieceType.Normal)
                {
                    _playerPiece.ConvertPieceType(PieceController.PieceType.Normal);
                    ActiveGrid.AddPlayingPiece(_playerPiece);
                }
                else if (_playerPiece.PPieceType == PlayerPieceController.PlayerPieceType.Mirror)
                {
                    _playerPiece.ConvertPieceType(PieceController.PieceType.Normal);
                    ActiveGrid.AddPlayingPiece(_playerPiece);

                    _playerMirrorPiece.ConvertPieceType(PieceController.PieceType.Normal);
                    ActiveGrid.AddPlayingPiece(_playerMirrorPiece);
                }

                _cubesUsed++;

                if (ActiveGrid.CheckComplete())
                {
                    PlaceCivsOnPiece(ActiveGrid.Pieces[1, 1]);

                    StartCoroutine(SceneTransition());

                    _gameStarted = false;
                }
                else
                {
                    _playerPiece = Instantiate(PrefabManager.GetPrefab(PrefabManager.PrefabType.PlayerPiece), Vector3.zero, Quaternion.identity)
                                   .GetComponent <PlayerPieceController>();

                    if (GridLevel == 3)
                    {
                        if (_cubesUsed == 1)
                        {
                            _playerPiece.ConvertPlayerPieceType(PlayerPieceController.PlayerPieceType.Destroy);
                        }
                    }

                    _playerPiece.PlaceOnTop(ActiveGrid.Pieces[0, 0]);
                }

                //_playerPiece.ConvertPlayerPieceType(PlayerPieceController.PlayerPieceType.Destroy);
            }
        }
    }
コード例 #21
0
    IEnumerator Execute()
    {
        //ステートマシン上で動作するダイアログです。
        //
        yield return(DialogSingleton.OpenModal(new Dialog.InputData <DialogMessageAndButton>()
        {
            SetContentsPrefab = PrefabManager.GetPrefab(PrefabModel.Path.DialogNormal).GetComponent <DialogMessageAndButton>(),
            SetContentsInit = dialog =>
            {
                dialog.Init(new List <MessageSet>()
                {
                    new MessageSet()
                    {
                        Name = "Test",
                        Message = "非処理同期に対応したダイアログです。\nダイアログが閉じるまで処理を待ちます。",
                        Button = new Dictionary <string, Func <bool> >()
                        {
                            {
                                "Next", () =>
                                {
                                    dialog.DoNext();
                                    return false;
                                }
                            }
                        }
                    },
                    new MessageSet()
                    {
                        Name = "Test",
                        Message = "ボタン数やメッセージ速度など細かく設定できます。",
                        Button = new Dictionary <string, Func <bool> >()
                        {
                            {
                                "Next", () =>
                                {
                                    dialog.DoNext();
                                    return false;
                                }
                            },
                            {
                                "Cancel", () => true
                            },
                        }
                    }
                    ,
                    new MessageSet()
                    {
                        Name = "Test",
                        Message = "カスタマイズ次第では画像を載せたり、通信を待ったりできます。",
                        Button = new Dictionary <string, Func <bool> >()
                        {
                            {
                                "Ok", () =>
                                {
                                    dialog.DoNext();
                                    return false;
                                }
                            },
                        },
                        AsyncAction = NestTest()
                    }
                });
            }
        }));

        yield return(null);

        _statemachine.Next(State.End);
    }
コード例 #22
0
 private void Start()
 {
     Plr             = GetComponent <Player>();
     HighlightPrefab = PrefabManager.GetPrefab("UI/Highlight");
 }
コード例 #23
0
 // Use this for initialization
 void Start()
 {
     StarSystem    = GetComponent <StarSystem>();
     PrefabManager = GetComponent <PrefabManager>();
     BattlePrefab  = PrefabManager.GetPrefab("Battle");
 }
コード例 #24
0
 void InitPlayer()
 {
     player     = Instantiate(prefabManager.GetPrefab("ship"), startPosition, Quaternion.identity);
     playerAnim = player.GetComponent <Animator>();
 }
コード例 #25
0
ファイル: EntityFactory.cs プロジェクト: zwong91/Titan
    private static GameObject entry_loadEntry(EntityView objev)
    {
        ENTITY_ID id = objev.ID;

        //已经被卸载了.
        if (EntityFactory.Instance.m_entityContainer.Get(id) == null)
        {
            return(null);
        }
        EntityViewItem evItem = objev.createinfo;

        ENTITY_TYPE entityType = (ENTITY_TYPE)evItem.EntityType;

        UnityEngine.Object objPrefab = PrefabManager.GetPrefab(entityType);
        if (null == objPrefab)
        {
            Trace.LogError("找不到对应的类型的prefab,请检查PrefabManager中的Init函数,是否忘记加载? " + entityType.ToString());
            return(null);
        }
        GameObject entity = null;

        entity = objPrefab as GameObject;

        if (entity == null)
        {
            Trace.LogError("实例预设体对象失败! " + entityType.ToString());
            return(null);
        }

        entity.name += "-" + id.ToString();
        if (entity.transform.childCount > 0)
        {
            Trace.LogWarning("EntityView GameObject 有子节点!" + entity.transform.GetChild(0).name);
        }

        // 设置游戏对象
        objev.SetGameObject(entity);

        // 设置创建数据
        if (!objev.InitBuildeData(evItem))
        {
            Trace.LogError("初始化实体对象数据失败! id=" + id.ToString());
            return(null);
        }


        //如果是队友,则加入队友列表,
        if (objev.Type == ENTITY_TYPE.TYPE_PLAYER_ROLE && objev.CampFlag == CampFlag.CampFlag_Friend)
        {
            if (!m_friendPlayerList.Contains((uint)objev.ID))
            {
                m_friendPlayerList.Add((uint)objev.ID);
            }
        }

        //string entityname = "UnKnow";
        //Skin sk = SkinManager.GetSkin(objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_SKIN));
        //if (sk != null)
        //{
        //    entityname = sk.ResSkinObj.AssetName;
        //}
        //entity.name = entityname;
        //entity.name += "(entity" + evItem.EntityID.ToString() + ")";

        if (id == MainHeroID)
        {
            entity.transform.parent = null;
            MainHeroView            = objev;

            if (CreateMainHeroEntityEvent != null)
            {
                CreateMainHeroEntityEventArgs e = new CreateMainHeroEntityEventArgs();
                e.MainHeroID   = evItem.nHeroID;
                e.MainHeroUID  = MainHeroID;
                e.nMatchTypeID = GameLogicAPI.getCurRoomMatchType();
                CreateMainHeroEntityEvent(e);
                LogicDataCenter.playerSystemDataManager.Reset();
            }

            ViewEventHelper.Instance.SendCommand(GameLogicDef.GVIEWCMD_MASTER_VIEW_LOADED);
            Trace.Log("Load Hero Entry:" + entity.name);
        }
        else
        {
            entity.transform.parent = Instance.transform;
        }

        objPrefab = null;
        if (ENTITY_TYPE.TYPE_PLAYER_ROLE == entityType)
        {
            // 发送人物加载完指令到逻辑层
            EntityEventHelper.Instance.SendCommand(id, EntityLogicDef.ENTITY_CMD_LOAD_COMPLETED);
        }

        BaseStateMachine bs = entity.GetComponent <BaseStateMachine>();

        //已经有位置信息,创建模型时立即同步瞬移过去,之后的同步消息是走过去
        if (objev.data.nActorID == evItem.EntityID)
        {
            Vector3 pos;
            pos.x = objev.data.fPosition_x;
            pos.y = objev.data.fPosition_y;
            pos.z = objev.data.fPosition_z;

            Vector3 rot;
            rot.x = objev.data.fRotation_x;
            rot.y = objev.data.fRotation_y;
            rot.z = objev.data.fRotation_z;

            //怪物要走传送,不能直接设置位置
            if (entityType == ENTITY_TYPE.TYPE_MONSTER)
            {
                if (bs)
                {
                    cmd_creature_transport data = new cmd_creature_transport();
                    data.fPosition_x = pos.x;
                    data.fPosition_y = pos.y;
                    data.fPosition_z = pos.z;

                    data.fRotation_x = rot.x;
                    data.fRotation_y = rot.y;
                    data.fRotation_z = rot.z;

                    data.bUseAngle = 1;
                    bs.Transport(data);
                }
            }
            else
            {
                entity.transform.SetPosition(pos);
                entity.transform.eulerAngles = rot;
            }
        }

        CheckEntityMaskToRangeSearch(objev);
        //执行延迟处理的消息
        EntityViewCommandHandler.onCommandsDelay(objev);
        return(entity);
    }