コード例 #1
0
    private void Start()
    {
        manager   = GameObject.FindObjectOfType <RealWorldGame>();
        player    = GameObject.FindGameObjectWithTag("Player");
        displayer = GameObject.FindObjectOfType <DisplayerManager>();
        ui        = GameObject.FindObjectOfType <UISystem>();

        interactButton = KeyCode.X;
        baseText       = "Click " + interactButton.ToString() + " to ";
        texts          = new string[] { "interact with television", "get in", "interact with the light", "check",
                                        "go up the stairs", "go down the stairs", "interact with the fireplace" };
        Interactions = new Interaction[] { InteractWithTelevision, InteractWithDoor, InteractWithLight,
                                           InteractWithDisplayer, InteractWithStairsUp, InteractWithStairsDown, InteractWithFireplace };
    }
コード例 #2
0
    /// <summary>
    /// 初始化Manager
    /// </summary>
    private void InitClusterManager()
    {
        var map = new int[MapHeight][];

        for (var i = 0; i < map.Length; i++)
        {
            map[i] = new int[MapWidth];
        }
        ClusterManager.Single.ClearAll();
        ClusterManager.Single.Init(0, 0, MapWidth, MapHeight, UnitWidth, map);
        LoadMap.Single.Init(map, UnitWidth);
        DisplayerManager.AutoInstance();
        // 启动携程器
        CoroutineManage.AutoInstance();
    }
コード例 #3
0
    void Start()
    {
        // 启动TriggerTicker
        TriggerTicker.Single.Start();
        // 设定帧数
        Application.targetFrameRate = 60;
        var loadMapPos = LoadMap.GetCenter();

        ClusterManager.Single.Init(loadMapPos.x + LoadMap.MapWidth * LoadMap.UnitWidth, loadMapPos.z + LoadMap.MapHeight * LoadMap.UnitWidth, MapWidth, MapHeight, UnitWidth, null);

        // 启动显示管理器
        DisplayerManager.AutoInstance();
        // 启动携程器
        CoroutineManage.AutoInstance();
        // 启动数据管理器
        DataManager.AutoInstance();
        // 初始化资源
        InitPack();
        // 初始化lua
        InitLua();
        // 初始化技能
        InitSkill();
    }
コード例 #4
0
    IEnumerator CreatePreviews()
    {
        foreach (var prop in Library.instance.props)
        {
            if (!prop.GetComponent <Prop>())
            {
                continue;
            }

            var g = new GameObject();
            g.transform.parent = container.transform;

            var element = g.AddComponent <LevelEditorMenuElement>();
            element.editor     = this;
            element.onHovered += delegate {
                SelectItem(g);
            };

            var img          = g.AddComponent <Image>();
            var containerImg = container.GetComponent <Image>();
            img.sprite = containerImg.sprite;
            img.color  = containerImg.color;
            img.type   = Image.Type.Sliced;
            entries.Add(img, prop);
            var msk = g.AddComponent <Mask>();

            var preview = new GameObject();
            preview.transform.parent = g.transform;
            var rect = preview.AddComponent <RectTransform>();
            rect.anchorMin = new Vector2(0f, 0f);
            rect.anchorMax = new Vector2(1f, 1f);


            var bounds    = prop.GetComponentInChildren <MeshFilter>().sharedMesh.bounds.extents;
            var avgBounds = (bounds.x + bounds.y + bounds.z) / 0.5f;
            var sizeRatio = Mathf.Clamp(1f / avgBounds, 0.1f, 1f);
            var displayer = DisplayerManager.SetRotationFeed(
                null,
                preview.AddComponent <RawImage>(),
                512,
                sizeRatio,
                Random.value,
                5f * sizeRatio
                );
            displayer.name = prop.name;

            var tgt = displayer.GetModel();
            try
            {
                tgt.AddComponent <MeshRenderer>().material = prop.GetComponentInChildren <MeshRenderer>().sharedMaterial;
                tgt.AddComponent <MeshFilter>().mesh       = prop.GetComponentInChildren <MeshFilter>().sharedMesh;
            }
            catch
            {
                Debug.Log("Could not load displayer for prop " + prop.name);
            }
            yield return(false);
        }

        yield return(true);
    }
コード例 #5
0
    void FindAllReferences()
    {
        // SYSTEM
        if (temporality == null)
        {
            temporality = FindObjectOfType <Temporality>();
        }
        if (flagReader == null)
        {
            flagReader = FindObjectOfType <FlagReader>();
        }
        if (library == null)
        {
            library = FindObjectOfType <Library>();
        }
        if (soundManager == null)
        {
            soundManager = FindObjectOfType <SoundManager>();
        }
        if (systemManager == null)
        {
            systemManager = FindObjectOfType <SystemManager>();
        }
        if (missionCallbackManager == null)
        {
            missionCallbackManager = FindObjectOfType <MissionCallbackManager>();
        }
        if (missionManager == null)
        {
            missionManager = FindObjectOfType <MissionManager>();
        }
        if (cursorManagement == null)
        {
            cursorManagement = FindObjectOfType <CursorManagement>();
        }
        if (gridManagement == null)
        {
            gridManagement = FindObjectOfType <GridManagement>();
        }
        if (populationManager == null)
        {
            populationManager = FindObjectOfType <PopulationManager>();
        }
        if (saveManager == null)
        {
            saveManager = FindObjectOfType <SaveManager>();
        }
        if (cinematicManager == null)
        {
            cinematicManager = FindObjectOfType <CinematicManager>();
        }
        if (cityManager == null)
        {
            cityManager = FindObjectOfType <CityManager>();
        }
        if (bulletinsManager == null)
        {
            bulletinsManager = FindObjectOfType <BulletinsManager>();
        }
        if (overlayManager == null)
        {
            overlayManager = FindObjectOfType <OverlayManager>();
        }
        if (timelineController == null)
        {
            timelineController = FindObjectOfType <TimelineController>();
        }
        if (player == null)
        {
            player = FindObjectOfType <Player>();
        }
        if (eventManager == null)
        {
            eventManager = FindObjectOfType <EventManager>();
        }
        if (animationManager == null)
        {
            animationManager = FindObjectOfType <AnimationManager>();
        }
        if (achievementManager == null)
        {
            achievementManager = FindObjectOfType <AchievementManager>();
        }
        if (roamerManager == null)
        {
            roamerManager = FindObjectOfType <RoamerManager>();
        }
        if (environmentalFX == null)
        {
            environmentalFX = FindObjectOfType <EnvironmentalFX>();
        }


        // INTERFACE
        if (localization == null)
        {
            localization = FindObjectOfType <Localization>();
        }
        if (displayerManager == null)
        {
            displayerManager = FindObjectOfType <DisplayerManager>();
        }

        // INTERFACE - INGAME
        if (temporalityInterface == null)
        {
            temporalityInterface = FindObjectOfType <TemporalityInterface>();
        }
        if (tooltipGO == null)
        {
            tooltipGO = FindObjectOfType <TooltipGO>();
        }

        // DEBUG
        if (logger == null)
        {
            logger = FindObjectOfType <Logger>();
        }
    }
コード例 #6
0
    //游戏逻辑初始化
    public static IEnumerator InitLogic()
    {
        // Debug.logger.logEnabled = false;

        Application.targetFrameRate = 30;//限定帧率

        m_logicInitProgress = 0.3f;
        yield return(null);

        {
            bool sc_main_loadComplate = false;

            //增量装载场景公共资源 LoadSceneMode.Additive 加载场景的时候不关闭上一个场景
            SceneManage.Single.Load(
                "sc_main", null, LoadSceneMode.Additive,
                () => sc_main_loadComplate = true,//装载完成通知
                null
                );

            //等待主场景装载完成
            while (!sc_main_loadComplate)
            {
                yield return(null);
            }

            m_logicInitProgress = 0.35f;
            yield return(null);

            m_logicInitProgress = 0.4f;
            yield return(null);
        }

        //实例化服务器虚机
        QKNodeSDK_CLR.Node.AutoInstance();

        DataManager.AutoInstance();
        DisplayerManager.AutoInstance();
        m_logicInitProgress = 0.58f;
        yield return(null);

        SData_mapdata.AutoInstance();
        m_logicInitProgress = 0.9f;
        yield return(null);

        AI_Single.AutoInstance();

        //设置场景滚动限制参数
        {
            var scrollAreaLimiterObj = GameObject.Find("/ScrollAreaLimiter");
            var scrollAreaLimiter    = scrollAreaLimiterObj.GetComponent <ScrollAreaLimiter>();

            var mapData = SData_mapdata.Single.GetDataOfID(1);
            var xmin    = mapData.FreeCameraXmin;
            var xmax    = mapData.FreeCameraXmax;

            var zmin = mapData.FreeCameraZmin;
            var zmax = mapData.FreeCameraZmax;

            var halfBoxw = (xmax - xmin) / 2;
            var halfBoxh = (zmax - zmin) / 2;

            var centerX = xmin + halfBoxw;
            var centerZ = zmin + halfBoxh;

            scrollAreaLimiter.Area.center      = new Vector3(centerX, 300, centerZ);
            scrollAreaLimiter.Area.extents     = new Vector3(halfBoxw, 1000, halfBoxh);
            scrollAreaLimiter.SoftArea.center  = new Vector3(centerX, 300, centerZ);
            scrollAreaLimiter.SoftArea.extents = new Vector3(
                halfBoxw + 5 * DiamondGridMap.wxs * mapData.terrain_cell_bianchang,
                4000,
                halfBoxh + 5 * DiamondGridMap.VerticalSpacingFactor
                );
        }

        //实例化相机追随物管理器
        DP_CameraTrackObjectManage.AutoInstance();

        m_logicInitProgress = 1.0f;
        yield return(null);
    }