Skip to content

Commit 54414cd

Browse files
authored
Merge pull request #1 from Thundernerd/develop
Initial version
2 parents 0345188 + e7d31f5 commit 54414cd

24 files changed

+572
-0
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Changelog
2+
3+
## [1.0.0] - 2020-07-11
4+
5+
### Added
6+
- Layers Generator
7+
- Sorting Layers Generator
8+
- Tags Generator

CHANGELOG.md.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Editor.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Editor/ICodeGenerator.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace TNRD.CodeGeneration
2+
{
3+
public interface ICodeGenerator
4+
{
5+
void Generate();
6+
}
7+
}

Editor/ICodeGenerator.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Editor/LayerGenerator.cs

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using UnityEditor;
2+
using UnityEditorInternal;
3+
using UnityEngine;
4+
5+
namespace TNRD.CodeGeneration.Layers
6+
{
7+
public class LayerGenerator : ICodeGenerator
8+
{
9+
[MenuItem("TNRD/Code Generation/Layers")]
10+
private static void Execute()
11+
{
12+
var generator = new LayerGenerator();
13+
generator.Generate();
14+
}
15+
16+
public void Generate()
17+
{
18+
var layers = InternalEditorUtility.layers;
19+
20+
var generator = new Generator();
21+
var @class = new Class("Layers");
22+
23+
for (int i = 0; i < layers.Length; i++)
24+
{
25+
var layerName = Utilities.GetScreamName(layers[i]);
26+
var maskName = layerName + "_MASK";
27+
28+
@class.AddField(
29+
new Field(layerName, i, typeof(int))
30+
{
31+
IsConst = true,
32+
});
33+
34+
@class.AddField(
35+
new Field(maskName, string.Format("1 << {0}", i), typeof(int))
36+
{
37+
IsConst = true,
38+
});
39+
}
40+
41+
generator.AddClass(@class);
42+
generator.SaveToFile(Application.dataPath + "/Generated/Layers.cs");
43+
44+
AssetDatabase.Refresh();
45+
}
46+
}
47+
}

Editor/LayerGenerator.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Editor/SortingLayerGenerator.cs

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using UnityEditor;
2+
using UnityEngine;
3+
4+
namespace TNRD.CodeGeneration.Layers
5+
{
6+
public class SortingLayerGenerator : ICodeGenerator
7+
{
8+
[MenuItem("TNRD/Code Generation/Sorting Layers")]
9+
private static void Execute()
10+
{
11+
var generator = new SortingLayerGenerator();
12+
generator.Generate();
13+
}
14+
15+
public void Generate()
16+
{
17+
var layers = SortingLayer.layers;
18+
19+
var generator = new Generator();
20+
var @class = new Class("SortingLayers");
21+
22+
for (int i = 0; i < layers.Length; i++)
23+
{
24+
var layer = layers[i];
25+
var layerName = Utilities.GetScreamName(layer.name);
26+
var layerIdName = layerName + "_ID";
27+
28+
@class.AddField(
29+
new Field(layerName, layer.name, typeof(string))
30+
{
31+
IsConst = true,
32+
});
33+
34+
@class.AddField(
35+
new Field(layerIdName, layer.id, typeof(int))
36+
{
37+
IsConst = true,
38+
});
39+
}
40+
41+
generator.AddClass(@class);
42+
generator.SaveToFile(Application.dataPath + "/Generated/SortingLayers.cs");
43+
44+
AssetDatabase.Refresh();
45+
}
46+
}
47+
}

Editor/SortingLayerGenerator.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "TNRD.LayerTagsGenerator.Editor",
3+
"references": [
4+
"TNRD.CodeGenerator.Editor"
5+
],
6+
"includePlatforms": [
7+
"Editor"
8+
],
9+
"excludePlatforms": [],
10+
"allowUnsafeCode": false,
11+
"overrideReferences": false,
12+
"precompiledReferences": [],
13+
"autoReferenced": true,
14+
"defineConstraints": [],
15+
"versionDefines": [],
16+
"noEngineReferences": false
17+
}

0 commit comments

Comments
 (0)