Script Templates
Script templates can be used to allow users to create a new script based on a template.
Create a script 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.
The available identifiers
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. |
Create a new template proxy
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);
}
}