Ejemplo n.º 1
0
    /// <summary>
    /// 初始化角色位置
    /// </summary>
    public virtual ControlForMoveCpt InitUserPosition()
    {
        //开始角色控制
        ControlForMoveCpt moveControl = GameControlHandler.Instance.StartControl <ControlForMoveCpt>(GameControlHandler.ControlEnum.Normal);

        return(moveControl);
    }
Ejemplo n.º 2
0
    public override void Start()
    {
        base.Start();

        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
        //初始化场景

        SceneInnManager sceneInnManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneInnManager>();
        InnBuildBean    innBuildData    = gameData.GetInnBuildData();

        sceneInnManager.InitScene(innBuildData.innWidth, innBuildData.innHeight);

        //innBuildData.ChangeInnSize(2, innBuildManager, 9, 9);


        //构建地板
        InnBuildHandler.Instance.builderForFloor.StartBuild();
        //构建墙壁
        InnBuildHandler.Instance.builderForWall.StartBuild();
        //构建建筑
        InnBuildHandler.Instance.builderForFurniture.StartBuild();

        //初始化客栈处理
        InnHandler.Instance.InitInn();
        InnHandler.Instance.InitRecord();
        //其他场景切过来需要重置一下客栈数据
        InnHandler.Instance.CloseInn();
        //设置天气
        GameWeatherHandler.Instance.SetWeather(GameCommonInfo.CurrentDayData.weatherToday);
        //打开UI
        UIHandler.Instance.manager.OpenUI <UIGameMain>(UIEnum.GameMain);

        //增加回调
        GameTimeHandler.Instance.RegisterNotifyForTime(NotifyForTime);
        TimeBean timeData = gameData.gameTime;

        if (timeData.hour >= 24 ||
            timeData.hour < 6 ||
            GameTimeHandler.Instance.GetDayStatus() == GameTimeHandler.DayEnum.End)
        {
            //如果是需要切换第二天
            EndDay();
        }
        else
        {
            //如果是其他场景切换过来
            GameTimeHandler.Instance.SetTime(timeData.hour, timeData.minute);
            GameTimeHandler.Instance.SetTimeStatus(false);
            //建造NPC
            RefreshScene();
            //设置位置
            Vector3           startPosition = sceneInnManager.GetTownEntranceLeft();
            ControlForMoveCpt baseControl   = GameControlHandler.Instance.StartControl <ControlForMoveCpt>(GameControlHandler.ControlEnum.Normal);
            baseControl.SetFollowPosition(startPosition);
        }
        //改变四季
        GameSeasonsHandler.Instance.ChangeSeasons();

        StartCoroutine(BuildNavMesh());
    }
Ejemplo n.º 3
0
    public override ControlForMoveCpt InitUserPosition()
    {
        ControlForMoveCpt    moveControl          = base.InitUserPosition();
        SceneMountainManager sceneMountainManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneMountainManager>();

        //位置控制
        switch (GameCommonInfo.ScenesChangeData.beforeScene)
        {
        case ScenesEnum.GameTownScene:
            moveControl.SetPosition(sceneMountainManager.GetExitDoor());
            break;

        case ScenesEnum.GameInfiniteTowersScene:
            Vector3 doorPosition = sceneMountainManager.GetInfiniteTowersStairs();
            moveControl.SetPosition(doorPosition);
            break;
        }
        return(moveControl);
    }