前言
在任意地方创建一个文件夹,最好是你不去经常移动的地方,文件夹是用来存放你自定义的代码块的文件夹。
我就创建了一个名称:csharp_snippet 的文件夹。
把所有自定义的代码段都放在该文件夹中。
工具–>代码段管理器 –>选择Visual C#语言 –>选择下方的添加 –>浏览到你自定义的那个放代码块的文件夹就OK啦。
后续
本文自定义代码段的初衷是Visual Studio不支持Unity方法的提示,现在已经找到原因。
原因是安装ReSharper后导致的,卸载ReSharper之后问题解决。
当然也可以在ReSharper中安装插件解决。
ReSharper支持Unity的插件
扩展 > ReSharper > Extension Manager…
搜索 Unity > 点击Install安装Unity Support扩展
代码段不提示
工具 => 选项 => 文本编辑器 => C# => 常规
勾选自动列出成员即可
自定义代码段
新建代码块文件zprop.snippet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>zprop</Title> <Shortcut>zprop</Shortcut> <Description>自动实现的属性的代码片段</Description> <Author>剑行者</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal> <ID>type</ID> <ToolTip>属性类型</ToolTip> <Default>int</Default> </Literal> <Literal> <ID>property</ID> <ToolTip>属性名</ToolTip> <Default>MyProperty</Default> </Literal> </Declarations> <Code Language="csharp"> <![CDATA[ $type$ _$property$; public $type$ $property$ { get { return _$property$; } set { _$property$ = value; OnPropertyChanged("$property$"); } } $end$ ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
保存啦,然后依然是去
重启开发工具。
此时要我在项目中打出zprop按两次Tab 那我的数据访问层的代码就全部出来啦,当然还要添加一些引用就可以啦
注意
$end$是一个特殊变量,会在代码生成后,设置光标的定位。
Unity开发自定义代码段
zz_unity_awake.snippet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>Awake</Title> <Shortcut>zz_unity_awake</Shortcut> <Description>Unity生命周期方法</Description> <Author>码客说</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="csharp"> <![CDATA[ void Awake() { $end$ } ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
zz_unity_start.snippet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>Start</Title> <Shortcut>zz_unity_start</Shortcut> <Description>Unity生命周期方法</Description> <Author>码客说</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> </Declarations> <Code Language="csharp"> <![CDATA[ void Start() { $end$ } ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
zz_unity_update.snippet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>Update</Title> <Shortcut>zz_unity_update</Shortcut> <Description>Unity生命周期方法</Description> <Author>码客说</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> </Declarations> <Code Language="csharp"> <![CDATA[ void Update() { $end$ } ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
zz_unity_fixedupdate.snippet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>FixedUpdate</Title> <Shortcut>zz_unity_fixedupdate</Shortcut> <Description>Unity生命周期方法</Description> <Author>码客说</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="csharp"> <![CDATA[ void FixedUpdate() { $end$ } ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
zz_unity_lateupdate.snippet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>LateUpdate</Title> <Shortcut>zz_unity_lateupdate</Shortcut> <Description>Unity生命周期方法</Description> <Author>码客说</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="csharp"> <![CDATA[ void LateUpdate() { $end$ } ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
zz_unity_onenable.snippet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>OnEnable</Title> <Shortcut>zz_unity_onenable</Shortcut> <Description>Unity生命周期方法</Description> <Author>码客说</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> </Declarations> <Code Language="csharp"> <![CDATA[ void OnEnable() { $end$ } ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
zz_unity_ondisable.snippet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>OnDisable</Title> <Shortcut>zz_unity_ondisable</Shortcut> <Description>Unity生命周期方法</Description> <Author>码客说</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> </Declarations> <Code Language="csharp"> <![CDATA[ void OnDisable() { $end$ } ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
zz_unity_ondestroy.snippet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>OnDestroy</Title> <Shortcut>zz_unity_ondestroy</Shortcut> <Description>Unity生命周期方法</Description> <Author>码客说</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> </Declarations> <Code Language="csharp"> <![CDATA[ void OnDestroy() { $end$ } ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
ReSharper自定义代码段
安装ReSharper插件后,所有自定义的代码段都失效了,是因为
安装ReSharper插件后,它会自动导入代码段,但是后来的代码段是不会被导入的,只能我们自己添加。
我们可以找到
扩展 > Resharper > Tool > Templates Explor
选择语言 新建
内置配置
我们先打开prop的配置
这个相比C#的创建,简单多了
所有输入的$string$都会定义一个被替换的变量
还有特殊的变量$END$,变量作用在用户写完就是跳到END位置。
Unity代码段
Awake
zz_unity_awake
这样当我们生成代码后,光标就会自动在大括号内。
Start
zz_unity_start
Update
zz_unity_update
1 2 3 4
| void Update() { $END$ }
|
FixedUpdate
zz_unity_fixedupdate
1 2 3 4
| void FixedUpdate() { $END$ }
|
LateUpdate
zz_unity_lateupdate
1 2 3 4
| void LateUpdate() { $END$ }
|
OnEnable
zz_unity_onenable
1 2 3 4
| void OnEnable() { $END$ }
|
OnDisable
zz_unity_ondisable
1 2 3 4
| void OnDisable() { $END$ }
|
OnDestroy
zz_unity_ondestroy
1 2 3 4
| void OnDestroy() { $END$ }
|