Script templates can be used to allow users to create a new script based on a template.
Create a text document anywhere in the Content folder and create the template that you desire. It is recommended the use .cs or .h/.cpp for the file extension for the template files.
Use the following identifiers to replace certain parts of your template with information upon creation by the user.
Identifier | Description |
---|---|
%copyright% | Replaced with the copyright comment |
%class% | Replaced with the class name. This is a modified version of the file name. |
%filename% | C++ Template only. Replaced with the file name. |
%module% | C++ Template only. Replaced with the module name. |
%namespace% | C# Template only. Replaced with the module name. |
New C# template proxy:
[ContentContextMenu("New/C#/My new template")]
public class TestingCSharpProxy : CSharpProxy
{
public override string Name => "My new template";
protected override void GetTemplatePath(out string path)
{
// Can use `Globals` class to get specific project folders
path = "path to new .cs template";
}
}
New C++ template proxy:
[ContentContextMenu("New/C++/My new template")]
public class TestingCppProxy : CppProxy
{
public override string Name => "My new template";
protected override void GetTemplatePaths(out string headerTemplate, out string sourceTemplate)
{
// Can use `Globals` class to get specific project folders
headerTemplate = "path to new .h template";
sourceTemplate = "path to new .cpp template";
}
}
Add the new proxy to the ContentDatabase using an EditorPlugin
public class TestEditorPlugin : EditorPlugin
{
public override void InitializeEditor()
{
base.InitializeEditor();
Editor.ContentDatabase.AddProxy(new TestingCSharpProxy());
Editor.ContentDatabase.AddProxy(new TestingCppProxy());
Editor.ContentDatabase.Rebuild(true);
}
}