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(); }
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(); }