Esempio n. 1
0
    public void LevelObjectDatabaseTest_PlayModeSimplePasses()
    {
        LevelObjectDatabase database = new LevelObjectDatabase();
        LevelEditorObject   obj      = database.GetObject(0, 0);

        Assert.IsNotNull(obj);
    }
Esempio n. 2
0
    public void SerializableLevelTest_EditModeSimplePasses()
    {
        // Load database
        LevelObjectDatabase database = new LevelObjectDatabase();

        // Create level
        GameObject[]      objects  = new GameObject[0];
        LevelEditorObject data     = database.GetObject(0, 0);
        GameObject        instance = MonoBehaviour.Instantiate(data.Prefab);

        instance.name = data.Path;

        instance.transform.position   = new Vector3(-1f, 5f, 3);
        instance.transform.rotation   = Quaternion.Euler(-45f, 90f, 15f);
        instance.transform.localScale = new Vector3(2f, 0.5f, 1.5f);
        objects[0] = instance;
    }
Esempio n. 3
0
        public static void RenderDB(int vpos)
        {
            if (prefabDatabase == null)
            {
                prefabDatabase = new LevelObjectDatabase();
            }

            int width  = Screen.width;
            int height = Screen.height;

            vpos += 150;

            Rect toolbarPos = new Rect(width / 4, vpos, width / 2, 2 * EditorGUIUtility.singleLineHeight);

            selectedCategory = GUI.Toolbar(toolbarPos, selectedCategory, prefabDatabase.GetFancyCategories);
            selectedObjects  = prefabDatabase.GetObjects(selectedCategory);

            GUI.Label(new Rect(30, vpos, width / 4 - 8, toolbarPos.height), "Categories");

            if (GUI.Button(new Rect(toolbarPos.x + toolbarPos.width + 8, vpos, 128, toolbarPos.height), "Refresh"))
            {
                prefabDatabase.LoadLevelObjects();
            }

            vpos += Mathf.CeilToInt(toolbarPos.height) + (int)EditorGUIUtility.singleLineHeight;

            if (selectedObjects == null)
            {
                Debug.LogError("Failed to get selected objects!");
            }

            int Num       = selectedObjects.Count;
            int IconSize  = 64;
            int IconSpace = 100;
            int count_x   = width / 100;
            int count_y   = Num % count_x == 0 ? Num / count_x : Num / count_x + 1;

            scrollPos = GUI.BeginScrollView(new Rect(0, vpos, width, height - vpos), scrollPos, new Rect(0, 0, width, count_y * IconSpace));


            int localvpos = 0;
            int localhpos = (IconSpace - IconSize) / 2;

            for (int i = 0; i < Num; i++)
            {
                Texture2D  Preview = UnityEditor.AssetPreview.GetAssetPreview(selectedObjects[i].Value.Prefab);
                GUIContent content = new GUIContent(Preview, selectedObjects[i].Value.Name);

                if (Preview != null)
                {
                    if (GUI.Button(new Rect(localhpos, localvpos, IconSize, IconSize), content))
                    {
                        projectActiveSelection = selectedObjects[i].Value;
                    }

                    localhpos += IconSpace;

                    if (localhpos + IconSpace >= width)
                    {
                        localhpos  = (IconSpace - IconSize) / 2;
                        localvpos += IconSpace;
                    }
                }
            }

            GUI.EndScrollView();
        }