ReSharper 2025.2 Help

Unity 预定义文件模板

本主题列出了 ReSharper 2025.2 中所有 Unity 的预定义文件模板。 有关文件模板的更多信息,请参阅 从模板创建文件

模板

详细信息

IComponentData

范围 Unity DOTS 项目

主体

$HEADER$namespace $NAMESPACE$ { public struct $COMPONENT$ : Unity.Entities.IComponentData { $END$ } }

参数

  • 头部 - 插入设置中指定的文件头

  • 组件 - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

程序集定义文件

程序集定义文件

范围 Unity 项目,Unity 2017.3 及更高版本项目

主体

{ "name": "$NAME$" }

参数

  • 名称 - 评估为当前文件名(不含空白字符)

运行模式测试

运行模式测试

范围 Unity 项目

主体

$HEADER$namespace $NAMESPACE$ { public class $CLASS$ { [NUnit.Framework.Test] public void $CLASS$SimplePasses() { // Use the Assert class to test conditions. $END$ } // A UnityTest behaves like a coroutine in PlayMode // and allows you to yield null to skip a frame in EditMode [UnityEngine.TestTools.UnityTest] public System.Collections.IEnumerator $CLASS$WithEnumeratorPasses() { // Use the Assert class to test conditions. // yield to skip a frame yield return null; } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

IJobEntity

范围 Unity DOTS 项目

主体

$HEADER$namespace $NAMESPACE$ { public partial struct $JOBENTITY$ : Unity.Entities.IJobEntity { public void Execute($END$) { } } }

参数

  • 头部 - 插入设置中指定的文件头

  • 作业实体 - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

图像效果着色器

图像效果着色器

范围 Unity 项目

主体

Shader "Hidden/$NAME$" { $END$Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { // No culling or depth Cull Off ZWrite Off ZTest Always Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = v.uv; return o; } sampler2D _MainTex; fixed4 frag (v2f i) : SV_Target { fixed4 col = tex2D(_MainTex, i.uv); // just invert the colors col = 1 - col; return col; } ENDCG } } }

参数

  • 名称 - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 结束 - 模板应用后光标的位置。

资源后处理器

资源后处理器

范围 Unity 编辑器文件夹

主体

$HEADER$namespace $NAMESPACE$ { public class $CLASS$ : UnityEditor.AssetPostprocessor { public static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { $END$ } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

可编写脚本的对象

可编写脚本的对象

范围 Unity 项目

主体

$HEADER$namespace $NAMESPACE$ { [UnityEngine.CreateAssetMenu(fileName = "$FILENAME$", menuName = "$MENUNAME$", order = 0)] public class $CLASS$ : UnityEngine.ScriptableObject { $END$ } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 文件名 - 在变量计算点显示基本代码补全列表

  • 菜单名称 - 在变量计算点显示基本代码补全列表

  • 结束 - 模板应用后光标的位置。

Mono Behaviour

Mono Behaviour

范围 Unity 项目

主体

$HEADER$namespace $NAMESPACE$ { public class $CLASS$ : UnityEngine.MonoBehaviour {$END$} }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

编辑器窗口

编辑器窗口

范围 Unity 编辑器文件夹,Unity 2022.2 及更高版本项目

主体

$HEADER$namespace $NAMESPACE$ { public class $CLASS$ : UnityEditor.EditorWindow { [UnityEditor.MenuItem("$MENUITEM$/$MENUITEMCOMMAND$")] private static void ShowWindow() { var window = GetWindow<$CLASS$>(); window.titleContent = new UnityEngine.GUIContent("$TITLE$"); window.Show(); } private void CreateGUI() { $END$ } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 菜单项 - 无宏

  • 菜单项命令 - 无宏

  • 标题 - 无宏

  • 结束 - 模板应用后光标的位置。

State Machine Behaviour

State Machine Behaviour

范围 Unity 项目

主体

$HEADER$namespace $NAMESPACE$ { public class $CLASS$ : UnityEngine.StateMachineBehaviour { public override void OnStateEnter(UnityEngine.Animator animator, UnityEngine.AnimatorStateInfo stateInfo, int layerIndex) { $END$ } public override void OnStateExit(UnityEngine.Animator animator, UnityEngine.AnimatorStateInfo stateInfo, int layerIndex) { } public override void OnStateUpdate(UnityEngine.Animator animator, UnityEngine.AnimatorStateInfo stateInfo, int layerIndex) { } public override void OnStateMove(UnityEngine.Animator animator, UnityEngine.AnimatorStateInfo stateInfo, int layerIndex) { } public override void OnStateIK(UnityEngine.Animator animator, UnityEngine.AnimatorStateInfo stateInfo, int layerIndex) { } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

编辑器 EntryPoint C# 脚本

编辑器 EntryPoint C# 脚本

范围 Unity 编辑器文件夹

主体

$HEADER$namespace $NAMESPACE$ { [UnityEditor.InitializeOnLoad] public static class $CLASS$ { static $CLASS$() {$END$} } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

属性绘制器(IMGUI)

属性绘制器(IMGUI)

范围 Unity 编辑器文件夹,Unity 2022.1 及更早版本项目

主体

$HEADER$namespace $NAMESPACE$ { [UnityEditor.CustomPropertyDrawer(typeof($TYPE$))] public class $CLASS$ : UnityEditor.PropertyDrawer { public override void OnGUI(UnityEngine.Rect position, UnityEditor.SerializedProperty property, UnityEngine.GUIContent label) { $END$ } public override float GetPropertyHeight(UnityEditor.SerializedProperty property, UnityEngine.GUIContent label) { return base.GetPropertyHeight(property, label); } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 类型 - 在变量计算点显示基本代码补全列表

  • 结束 - 模板应用后光标的位置。

自定义编辑器(IMGUI)

自定义编辑器(IMGUI)

范围 Unity 编辑器文件夹,Unity 2022.1 及更早版本项目

主体

$HEADER$namespace $NAMESPACE$ { [UnityEditor.CustomEditor(typeof($TYPE$))] public class $CLASS$ : UnityEditor.Editor { public override void OnInspectorGUI() { $END$ base.OnInspectorGUI(); } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 类型 - 在变量计算点显示基本代码补全列表

  • 结束 - 模板应用后光标的位置。

ISystem

范围 Unity DOTS 项目

主体

$HEADER$namespace $NAMESPACE$ { public partial struct $SYSTEM$ : Unity.Entities.ISystem { [Unity.Burst.BurstCompile] public void OnCreate(ref Unity.Entities.SystemState state) { $END$ } [Unity.Burst.BurstCompile] public void OnUpdate(ref Unity.Entities.SystemState state) { } [Unity.Burst.BurstCompile] public void OnDestroy(ref Unity.Entities.SystemState state) { } } }

参数

  • 头部 - 插入设置中指定的文件头

  • 系统 - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

可编写脚本的向导

可编写脚本的向导

范围 Unity 编辑器文件夹

主体

$HEADER$namespace $NAMESPACE$ { public class $CLASS$ : UnityEditor.ScriptableWizard { [UnityEditor.MenuItem("$MENUITEM$/$MENUITEMCOMMAND$")] public static void CreateWizard() { DisplayWizard<$CLASS$>("$TITLE$", "$CREATE$", "$OTHER$"); } public void OnWizardCreate() { $END$ } public void OnWizardUpdate() { } public void OnWizardOtherButton() { } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 菜单项 - 无宏

  • 菜单项命令 - 无宏

  • 标题 - 在变量计算点显示基本代码补全列表

  • 创建 - 在变量计算点显示基本代码补全列表

  • 其他 - 在变量计算点显示基本代码补全列表

  • 结束 - 模板应用后光标的位置。

标准表面着色器

标准表面着色器

范围 Unity 项目

主体

Shader "Custom/$NAME$" { $END$Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5 _Metallic ("Metallic", Range(0,1)) = 0.0 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM // Physically based Standard lighting model, and enable shadows on all light types #pragma surface surf Standard fullforwardshadows // Use shader model 3.0 target, to get nicer looking lighting #pragma target 3.0 sampler2D _MainTex; struct Input { float2 uv_MainTex; }; half _Glossiness; half _Metallic; fixed4 _Color; // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. // #pragma instancing_options assumeuniformscaling UNITY_INSTANCING_BUFFER_START(Props) // put more per-instance properties here UNITY_INSTANCING_BUFFER_END(Props) void surf (Input IN, inout SurfaceOutputStandard o) { // Albedo comes from a texture tinted by color fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color; o.Albedo = c.rgb; // Metallic and smoothness come from slider variables o.Metallic = _Metallic; o.Smoothness = _Glossiness; o.Alpha = c.a; } ENDCG } FallBack "Diffuse" }

参数

  • 名称 - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 结束 - 模板应用后光标的位置。

编辑模式测试

编辑模式测试

范围 Unity 编辑器文件夹,Unity firstpass 编辑器文件夹

主体

$HEADER$using UnityEditor; namespace $NAMESPACE$ { public class $CLASS$ { [NUnit.Framework.Test] public void $CLASS$SimplePasses() { // Use the Assert class to test conditions. $END$ } // A UnityTest behaves like a coroutine in PlayMode // and allows you to yield null to skip a frame in EditMode [UnityEngine.TestTools.UnityTest] public System.Collections.IEnumerator $CLASS$WithEnumeratorPasses() { // Use the Assert class to test conditions. // yield to skip a frame yield return null; } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

自定义编辑器

自定义编辑器

范围 Unity 编辑器文件夹,Unity 2022.2 及更高版本项目

主体

$HEADER$namespace $NAMESPACE$ { [UnityEditor.CustomEditor(typeof($TYPE$))] public class $CLASS$ : UnityEditor.Editor { public override UnityEngine.UIElements.VisualElement CreateInspectorGUI() { $END$ return base.CreateInspectorGUI(); } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 类型 - 在变量计算点显示基本代码补全列表

  • 结束 - 模板应用后光标的位置。

不发光着色器

不发光着色器

范围 Unity 项目

主体

Shader "Unlit/$NAME$" { $END$Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag // make fog work #pragma multi_compile_fog #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; UNITY_FOG_COORDS(1) float4 vertex : SV_POSITION; }; sampler2D _MainTex; float4 _MainTex_ST; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex); UNITY_TRANSFER_FOG(o,o.vertex); return o; } fixed4 frag (v2f i) : SV_Target { // sample the texture fixed4 col = tex2D(_MainTex, i.uv); // apply fog UNITY_APPLY_FOG(i.fogCoord, col); return col; } ENDCG } } }

参数

  • 名称 - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 结束 - 模板应用后光标的位置。

IAspect

范围 Unity DOTS 项目

主体

$HEADER$namespace $NAMESPACE$ { public readonly partial struct $ASPECT$ : Unity.Entities.IAspect { $END$ } }

参数

  • 头部 - 插入设置中指定的文件头

  • 方面 - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

编辑器窗口(IMGUI)

编辑器窗口(IMGUI)

范围 Unity 编辑器文件夹,Unity 2022.1 及更早版本项目

主体

$HEADER$namespace $NAMESPACE$ { public class $CLASS$ : UnityEditor.EditorWindow { [UnityEditor.MenuItem("$MENUITEM$/$MENUITEMCOMMAND$")] private static void ShowWindow() { var window = GetWindow<$CLASS$>(); window.titleContent = new UnityEngine.GUIContent("$TITLE$"); window.Show(); } private void OnGUI() { $END$ } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 菜单项 - 无宏

  • 菜单项命令 - 无宏

  • 标题 - 无宏

  • 结束 - 模板应用后光标的位置。

SystemBase

范围 Unity DOTS 项目

主体

$HEADER$namespace $NAMESPACE$ { public partial class $SYSTEM$ : Unity.Entities.SystemBase { protected override void OnUpdate() { $END$ } } }

参数

  • 头部 - 插入设置中指定的文件头

  • 系统 - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 结束 - 模板应用后光标的位置。

创作 Mono 行为

创作 Mono 行为

范围 Unity DOTS 项目

主体

$HEADER$namespace $NAMESPACE$ { public class $CLASS$ : UnityEngine.MonoBehaviour { private class $CLASS$Baker : Unity.Entities.Baker<$CLASS$> { public override void Bake($CLASS$ authoring) { } } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

属性绘制器

属性绘制器

范围 Unity 编辑器文件夹,Unity 2022.2 及更高版本项目

主体

$HEADER$namespace $NAMESPACE$ { [UnityEditor.CustomPropertyDrawer(typeof($TYPE$))] public class $CLASS$ : UnityEditor.PropertyDrawer { public override UnityEngine.UIElements.VisualElement CreatePropertyGUI(UnityEditor.SerializedProperty property) { $END$ return base.CreatePropertyGUI(property); } } }

参数

  • 头部 - 插入设置中指定的文件头

  • - 评估为当前文件名(不含扩展名),并将所有非字母数字字符替换为下划线

  • 命名空间 - 评估为当前文件的默认命名空间

  • 类型 - 在变量计算点显示基本代码补全列表

  • 结束 - 模板应用后光标的位置。

最后修改日期: 2025年 9月 27日