コード例 #1
0
 private void IMapStateChanged(IMapState iMapState, string fieldName)
 {
     if (string.Equals(fieldName, GameState.Instance.GetFieldName <IMapState, int>(temp => temp.MarkTaskID)))
     {
         ShowNowTask();
     }
 }
コード例 #2
0
    /// <summary>
    /// 控件激活时
    /// </summary>
    private void OnEnable()
    {
        fisrtKeyUP    = false;
        iGameState    = GameState.Instance.GetEntity <IGameState>();
        iPlayerState  = GameState.Instance.GetEntity <IPlayerState>();
        iMapState     = GameState.Instance.GetEntity <IMapState>();
        iNowTaskState = GameState.Instance.GetEntity <INowTaskState>();
        npcData       = DataCenter.Instance.GetMetaData <NPCData>();
        PlayerState playerState = DataCenter.Instance.GetEntity <PlayerState>();

        playerState.UpdateMapMaskData(iGameState.SceneName);
        runTimeTasksData = DataCenter.Instance.GetEntity <RuntimeTasksData>();
        UIManager.Instance.KeyUpHandle    += Instance_KeyUpHandle;
        UIManager.Instance.KeyPressHandle += Instance_KeyPressHandle;
        bigMapOperateState = EnumBigMapOperateState.OperateMap;
        showSettingPanel.gameObject.SetActive(false);
        ResetSceneDropDown();
        //ResetMap(iMapState.MapBackSprite, iMapState.MaskMapSprite, iMapState.MapRectAtScene, iGameState.SceneName);
        StartCoroutine(NextFrameInit());
        //判断是否是点击路牌打开的该界面.如果是才可以传送
        IInteractiveState iInteractiveState = GameState.Instance.GetEntity <IInteractiveState>();
        NPCDataInfo       npcDataInfo       = npcData.GetNPCDataInfo(iGameState.SceneName, iInteractiveState.ClickInteractiveNPCID);

        if (npcDataInfo != null && npcDataInfo.NPCType == EnumNPCType.Street)
        {
            canTransport = true;
        }
        else
        {
            canTransport = false;
        }
    }
コード例 #3
0
 void Start()
 {
     verticalLayoutGroup = GetComponent <VerticalLayoutGroup>();
     iNowTaskState       = GameState.Instance.GetEntity <INowTaskState>();
     iMapState           = GameState.Instance.GetEntity <IMapState>();
     GameState.Instance.Registor <INowTaskState>(INowTaskStateChanged);
     GameState.Instance.Registor <IMapState>(IMapStateChanged);
     runTimeTasksData = DataCenter.Instance.GetEntity <TaskMap.RunTimeTaskData>();
     ShowNowTask();
 }
コード例 #4
0
 void Start()
 {
     iPlayerState     = GameState.Instance.GetEntity <IPlayerState>();
     iGameState       = GameState.Instance.GetEntity <IGameState>();
     iMapState        = GameState.Instance.GetEntity <IMapState>();
     iNowTaskState    = GameState.Instance.GetEntity <INowTaskState>();
     npcData          = DataCenter.Instance.GetMetaData <NPCData>();
     runTimeTasksData = DataCenter.Instance.GetEntity <RuntimeTasksData>();
     ResetMap();
     GameState.Instance.Registor <IGameState>(IGamgeStateChaged);
 }
コード例 #5
0
    private void OnEnable()
    {
        iMapState     = GameState.Instance.GetEntity <IMapState>();
        iNowTaskState = GameState.Instance.GetEntity <INowTaskState>();
        UIManager.Instance.KeyUpHandle += Instance_KeyUpHandle;

        uiTaskList.Init();
        //填充任务列表
        TaskMap.RunTimeTaskInfo[] runTimeTaskInfoArray = iNowTaskState.GetStartTask(null); //runtimeTaskData.GetAllToDoList().Where(temp => temp.IsStart == true).ToArray();
        foreach (TaskMap.RunTimeTaskInfo runTimeTaskInfo in runTimeTaskInfoArray)
        {
            TaskMap.TaskInfoStruct taskInfoStruct = runTimeTaskInfo.TaskInfoStruct;
            UIListItem             uiListItem     = uiTaskList.NewItem();
            uiListItem.value          = runTimeTaskInfo;
            uiListItem.childText.text = taskInfoStruct.TaskTitile;
        }
        uiTaskList.UpdateUI();
        nowTaskItem = uiTaskList.FirstShowItem();
        if (nowTaskItem)
        {
            uiTaskList.ShowItem(nowTaskItem);
        }
        ExplanNowItem();
    }
コード例 #6
0
 public PhysicsEngine(IConfig config, IMapState mapState)
 {
     _config   = config;
     _mapState = mapState;
 }
コード例 #7
0
 /// <summary>
 /// 更改场景
 /// </summary>
 /// <param name="sceneName">场景名</param>
 /// <param name="playerLocation">玩家的位置</param>
 /// <param name="LoadResultAction">加载结果回调</param>
 public void ChangedScene(string sceneName, Vector3 playerLocation, Action <bool> LoadResultAction = null)
 {
     GameRunType = EnumGameRunType.Start;//切换场景时当前的状态为开始状态
     //如果要切换的场景不是当前场景则加载场景
     if (SceneName != sceneName)
     {
         //保存原来地形的遮罩图
         if (!string.IsNullOrEmpty(SceneName))
         {
             playerState.SaveGetSceneMapMaskData(SceneName);
         }
         //开始加载
         UIChangeScene.Instance.LoadScene(sceneName, result =>
         {
             //自身调用初始化数据
             Debug.Log("需要调用自身的函数实现数据的初始化,如地图显示,npc位置等一系列的数据");
             //加载地图的图片以及遮罩资源
             IMapState iMapState     = GetEntity <IMapState>();
             MapData mapData         = DataCenter.Instance.GetMetaData <MapData>();
             MapDataInfo mapDataInfo = mapData[sceneName];
             if (mapDataInfo != null)
             {
                 mapDataInfo.Load();
                 iMapState.MapBackSprite  = mapDataInfo.MapSprite;
                 Sprite mapMaskSprite     = playerState.GetSceneMapMaskSprite(sceneName, mapDataInfo.MapSprite);
                 iMapState.MaskMapSprite  = mapMaskSprite;
                 iMapState.MapRectAtScene = mapDataInfo.SceneRect;
             }
             //初始化npc与npc的位置
             NPCData npcData            = DataCenter.Instance.GetMetaData <NPCData>();
             NPCDataInfo[] npcDataInfos = npcData.GetNPCDataInfos(sceneName);
             foreach (NPCDataInfo npcDataInfo in npcDataInfos)
             {
                 npcDataInfo.Load();//切换场景时有时候会导致游戏对象被删除,需要重新Load
             }
             //初始化采集点与采集点的位置
             StuffData stuffData            = DataCenter.Instance.GetMetaData <StuffData>();
             StuffDataInfo[] stuffDataInfos = stuffData.GetStuffDataInfos(sceneName);
             foreach (StuffDataInfo stuffDataInfo in stuffDataInfos)
             {
                 stuffDataInfo.Load();//切换场景时有时候会导致游戏对象被删除,需要重新Load
             }
             //初始化功能交互对象
             ActionInteractiveData actionInteractiveData            = DataCenter.Instance.GetMetaData <ActionInteractiveData>();
             ActionInteractiveDataInfo[] actionInteractiveDataInfos = actionInteractiveData.GetActionInteractiveDataInfos(sceneName);
             foreach (ActionInteractiveDataInfo actionInteractiveDataInfo in actionInteractiveDataInfos)
             {
                 actionInteractiveDataInfo.Load();//切换场景时有时候会导致游戏对象被删除,需要重新Load
             }
             //创建UI
             GameObject mainCanvasPrefab = Resources.Load <GameObject>("UI/MainCanvas");
             GameObject.Instantiate(mainCanvasPrefab);
             //创建玩家操纵的游戏对象
             GameObject playerPrefab = Resources.Load <GameObject>("Prefabs/Player");
             GameObject.Instantiate(playerPrefab);
             //更改过后修改玩家位置
             PlayerObj.transform.position = playerLocation;
             //回调
             if (LoadResultAction != null)
             {
                 LoadResultAction(result);
             }
             SceneName   = sceneName;
             GameRunType = EnumGameRunType.Safe;
             //场景变换回调
             Call <IGameState, Action <string, Vector3, Action <bool> > >(temp => temp.ChangedScene);
         });
     }
     else//如果不需要切换场景则直接更改玩家位置即可
     {
         UIChangeScene.Instance.MovePlayer(3, result =>
         {
             GameRunType = EnumGameRunType.Safe;
             //场景变换回调
             Call <IGameState, Action <string, Vector3, Action <bool> > >(temp => temp.ChangedScene);
         });
         //更改过后修改玩家位置
         PlayerObj.transform.position = playerLocation;
         //关闭当前按显示的UI
         IInteractiveState iInteractiveState = GameState.Instance.GetEntity <IInteractiveState>();
         iInteractiveState.ActionObj.SetActive(false);
     }
 }
コード例 #8
0
 public GameHub(IGameEngine gameEngine, IConfig config, IMapState mapState)
 {
     _gameEngine = gameEngine;
     _config     = config;
     _mapState   = mapState;
 }