热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Unity】使用sublime编辑unityshader

用VS编辑shader时候,安装HLSL插件,还是很少提示,不会代码补全,高亮也比较少。用VSCode也不会代码补全,也不会跳转,试了试sublime,似乎是更好一些,没有用过su

用VS编辑shader时候,安装HLSL插件,还是很少提示,不会代码补全,高亮也比较少。

用VS Code也不会代码补全,也不会跳转,试了试sublime,似乎是更好一些,没有用过sublime,把安装和设置步骤总结一下。

一、下载安装sublime

1.下载: http://www.sublimetextcn.com/Sublime%20Text3_64.exe

2.安装:

 

 我安装之后就是已经汉化的了,这里不需要汉化。

3.设置环境变量

(这里设置环境变量是为后面配置unityshder跳转使用)

设置Sublime Text的环境变量 SublimeText_Path

二、设置Unity的Shader文件双击跳转sublime

1.在Assets的Editor文件夹中添加ShaderEditor.cs,代码如下:

using UnityEngine;
using UnityEditor;
using System;
public class LuaTxtEditor
{
//http://www.xuanyusong.com/archives/3702
[UnityEditor.Callbacks.OnOpenAssetAttribute(1)]
public static bool step1(int instanceID, int line)
{
return false;
}
[UnityEditor.Callbacks.OnOpenAssetAttribute(
2)]
public static bool step2(int instanceID, int line)
{
string strFilePath = AssetDatabase.GetAssetPath(EditorUtility.InstanceIDToObject(instanceID));
string strFileName = System.IO.Directory.GetParent(Application.dataPath) + "/" + strFilePath;
if (strFileName.EndsWith(".shader"))
{
string strSublimeTextPath = Environment.GetEnvironmentVariable("SublimeText_Path");
if (strSublimeTextPath != null && strSublimeTextPath.Length > 0)
{
System.Diagnostics.Process process
= new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo
= new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle
= System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName
= strSublimeTextPath + (strSublimeTextPath.EndsWith("/") ? "" : "/") + "sublime_text.exe";
startInfo.Arguments
= "\"" + strFileName + "\"";
process.StartInfo
= startInfo;
process.Start();
//Debug.Log(startInfo.FileName + " \t " + startInfo.Arguments);
return true;
}
else
{
Debug.Log(
"Not Found Enviroment Variable 'SublimeText_Path'.");
return false;
}
}
return false;
}
}

 


2.重启Unity,即可实现shader双击跳转

 

三、安装sublime的unityshader插件,实现高亮和代码补全

1.下载sublime的插件:

github中下载zip即可: https://github.com/cjsjy123/Unity-Shader

或者通过我已上传的压缩包直接下载:https://files.cnblogs.com/files/weigangblog/Unity-Shader.zip

2.安装插件:

将压缩包解压到sublime安装目录的Data中的Package目录,或通过sublime面板的 首选项--浏览插件 查看目录。

随后就可以在 首选项--插件设置 中看到UnityShader

3.设置插件解压目录下的UnityShader.sublime-settings文件

{
// must set the path and version u5 or u4
"Unity_Version":"U5",
"Shader_path": "D:/Program Files/Unity2018.4.21/Editor/Data/CGIncludes",
"U5_Shader_path":"D:/Program Files/Unity2018.4.21/Editor/Data/CGIncludes"
}

Shader_path和U5_Shader_path是Unity安装文件夹下的CGIncludes文件夹

随后再打开unity的shader就会显示高亮,并且可以自动补全。

 

 


 



推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • PHP中的单例模式与静态变量的区别及使用方法
    本文介绍了PHP中的单例模式与静态变量的区别及使用方法。在PHP中,静态变量的存活周期仅仅是每次PHP的会话周期,与Java、C++不同。静态变量在PHP中的作用域仅限于当前文件内,在函数或类中可以传递变量。本文还通过示例代码解释了静态变量在函数和类中的使用方法,并说明了静态变量的生命周期与结构体的生命周期相关联。同时,本文还介绍了静态变量在类中的使用方法,并通过示例代码展示了如何在类中使用静态变量。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
author-avatar
loassde_392
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有