unityAPI
描述
用于打开 Unity 中某个资源的回调属性(例如,双击 Project Browser 中的某个资源时会触发回调)。
将此属性添加至某个静态方法后,系统会在 Unity 即将打开资源时调用该方法。该方法应有以下签名之一:
static bool OnOpenAsset(int instanceID, int line)
static bool OnOpenAsset(int instanceID, int line, int column)
如果处理了资源打开操作,则返回 true,如果资源应该由外部工具打开,则返回 false。
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
public class MyAssetHandler
[OnOpenAssetAttribute(1)]
public static bool step1(int instanceID, int line)
string name = EditorUtility.InstanceIDToObject(instanceID).name;
Debug.Log("Open Asset step: 1 (" + name + ")");
return false;
[OnOpenAssetAttribute(2)]
public static bool step2(int instanceID, int line)
Debug.Log("Open Asset step: 2 (" + instanceID + ")");
return false;
OnOpenAssetAttribute 具有提供回调中的顺序索引的选项,从 0 开始。如果您有多个 OnOpenAssetAttribute 回调并想以特定顺序调用它们,此选项将非常有用。系统将从零开始按顺序调用回调。
instanceID是拿到了双击资源的instanceID,line和column好像没什么用。
注意这个是监听全局的,没有办法特定对某个类型的asset的双击。
所以要在检测到时,拿instanceID验证下是不是对应的Asset,不是的话返回false,以免屏蔽了对其它资源的双击回调。
Unity 使用 Play Asset Delivery 插件
com.google.play.assetdelivery-1.7.0.unitypackage
unity 打包aab所使用的插件
可是使用它,解决谷哥安装包150m限制
AssetStudio 查看unity资源,支持以下资源解压
Texture2D : convert to png, tga, jpeg, bmp
Sprite : crop Texture2D to png, tga, jpeg, bmp
AudioClip : mp3, ogg, wav, m4a, fsb. support convert FSB file to WAV(PCM)
Font : ttf, otf
Mesh : obj
TextAsset
Shader
MovieTexture
VideoClip
MonoBehaviour : json
Animator : export to FBX file with bound AnimationClip
instanceID是资源的唯一标识符,lineNumber是资源文件中的行号。在Unity中,OnOpenAsset是一个非常有用的回调函数,它可以在用户双击资源文件时自动打开一个编辑器窗口。在这个例子中,我们判断资源类型是否为txt文件,如果是则打开文本编辑器。在这个例子中,我们判断资源类型是否为png或jpg纹理文件,如果是则打开纹理文件。在这个例子中,我们判断资源类型是否为unity景文件,如果是则打开场景文件。在这个例子中,我们判断资源类型是否为cs脚本文件,如果是则打开脚本文件。
在GUI.Toggle(pos, value, label, "button")最后的GUIStyle设置为button就可以变成toggle形式的button了
EditorGUI.BeginChangeCheck()和EditorGUI.EndChangeCheck()可以用来检测control控件是否修改
EditorGUI.DelayedDoubleField()和EditorGUI.DoubleField()的区别在于前者只有当鼠标移出输入框的时候才会返回值
EditorGUILayo
Unity的Console窗口双击重新定向脚本。
项目里有时候会自己重新封装unity的Debug类,做Log信息的输出权限管理for写入本地Log文件,着色之类的。
那么会带来双击定位到自己的脚本,而不是具体的业务脚本。
所以就分享一篇定向脚本,附带一些注释。
引用了别人的一篇定位脚本,做了修改。。。引用了谁的已经不记得了。Sorry。
* By: Fox.Huang 黄文叶, Date...
举两个例子,在变量上使用[SerializeFiled]属性,可以强制让变量进行序列化,可以在Unity的Editor上进行赋值。
在Class上使用[RequireComponent]属性,就会在Class的GameObject上自动追加所需的Component。
以下是Unity官网文档中找到的所有Attribute,下面将按照顺序,逐个对这些Attribute进行说明和小的测试。
部分例子使用了Unity官方的示例。
UnityEngine
AddComponentMenu
可以在Unity
在Inspector面板上给定义的字段的上一行加段描述,可以将属性隔离开,形成分组的感觉
[Tooltip(“XXX”)]
给一个变量添加这个属性后,在Inspector面板将鼠标悬停在该变量上可以显示提示
[Range(min, max)]`
限制数值变量的取值范围并以滑动条显示在Inspector中
[Min(min)]
限制一个 float,int 类型的变量的最小值
Unity3D自定义资源文件编辑工具插件。在Unity3D编辑器中,双击或者右键打开一些资源文件时,我们希望使用自定义的工具来打开/编辑这些文件,例如:使用文本编辑器打开.txt文件,使用Sublime Text 打开.shader文件等。