コード例 #1
0
        protected override void OnEnable()
        {
            SceneView.duringSceneGui -= OnSceneGui;
            SceneView.duringSceneGui += OnSceneGui;

            ignoreLayer  = LayerMask.NameToLayer("Ignore Editor");
            defaultLayer = LayerMask.NameToLayer("Default");

            tilePrefab      = AssetDatabase.LoadAssetAtPath <QuadTile>("Assets/Prefabs/QuadTile.prefab");
            selectionPrefab = AssetDatabase.LoadAssetAtPath <QuadTile>("Assets/Prefabs/Editor/SelectionTile.prefab");
            brush           = AssetDatabase.LoadAssetAtPath <QuadTileData>("Assets/tiles/Mat/GrassLight.asset");

            _selectionTile = Instantiate(selectionPrefab);

            _selectionTile.name = "SelectionMarker";

            base.OnEnable();
        }
コード例 #2
0
        private void CreateTileBrush()
        {
            QuadTileData data = CreateInstance <QuadTileData>();

            Material topMat = AssetDatabase.LoadAssetAtPath <Material>($"Assets/Materials/Tiles/{top.name}.mat");

            if (topMat)
            {
                data.top = topMat;
            }
            else
            {
                topMat = new Material(Shader.Find("Universal Render Pipeline/Simple Lit"));
                topMat.SetTexture("_BaseMap", top);
                topMat.SetColor("_BaseColor", Color.white);
                AssetDatabase.CreateAsset(topMat, $"Assets/Materials/Tiles/{top.name}.mat");
                AssetDatabase.SaveAssets();
                data.top = AssetDatabase.LoadAssetAtPath <Material>($"Assets/Materials/Tiles/{top.name}.mat");
            }

            Material sideMat = AssetDatabase.LoadAssetAtPath <Material>($"Assets/Materials/Tiles/{side.name}.mat");

            if (sideMat)
            {
                data.sides = sideMat;
            }
            else
            {
                sideMat = new Material(Shader.Find("Universal Render Pipeline/Simple Lit"));
                sideMat.SetTexture("_BaseMap", side);
                sideMat.SetColor("_BaseColor", Color.white);
                AssetDatabase.CreateAsset(sideMat, $"Assets/Materials/Tiles/{side.name}.mat");
                AssetDatabase.SaveAssets();
                data.sides = AssetDatabase.LoadAssetAtPath <Material>($"Assets/Materials/Tiles/{side.name}.mat");
            }

            AssetDatabase.CreateAsset(data, $"Assets/Tiles/Mat/{brushName}.asset");
            AssetDatabase.SaveAssets();
            GUIHelper.RequestRepaint();
        }