自研项目的随记

一、GUI.Skin

  因为做Editor工具涉及到了Editor中GUI相关绘制,于是就顺带把GUISkin弄明白。挺好懂的,通过在工程界面邮件Create一个GUISkin,就能在其中给指定样式设置属性,然后动态加载Skin,再GUI.Skin = Skin,或者Skin.GetStyle("样式名")...就能把诸如默认的GUI.Label改成自己设置的样式了。

   

Qyw0zDXXoKhx7jZmP4PP.jpg

二、AssetDataBase.loadAssetAtPath<>()等

       之前使用AssetDataBase加载资源,使用习惯了的Resource.Load方式,所以导致总加载不了资源。然后查证,发现AssetDataBase加载的路径,一定要加"Assets/"前缀,和".xx"文件类型后缀名...  

0yQTa1BGPPiq13sfRIg5.jpg

三、EditorWnd和Editor类的关联,及OnGUI()里更新Editor对象的override方法。

       在做一个自定义预览弹窗时,发现该类继承Editor后,在EditorWnd类中使用CreateEditor创造出来,该类Override的一些方法并没自动被调用...结果必须在EditorWnd类中通过OnGUI()这种刷新方法中调用...

四、自定义Preview弹窗遇到的坑。

       如三、是打算自定义出一个Preview弹窗,搜索到的资料是关于如public override void OnInteractivePreviewGUI(Rect r, GUIStyle background)重载Preview相关virtual方法,然后通过PreviewRenderUtility这个官方没有说明的类进行预览。可结果试了很久,我都没弄出合适结果,因为这个类对象的m_Camera是看不到的,不知道它怎么去对准位置,然后卖二手手机号码渲染出预览...最后我通过新建一个Camera,在场景中通过它的GameObject调整摄像机参数,再使用RenderTexture产出贴图,GUI绘制贴图实现了预览小窗口。

2pJxMCCp3GXvIe6eeqWP.jpg

saSZoSE5QF4ppsjx6Hmx.jpg

u3Y34ocREzesNCN3cYal.jpg

五、实现Editor弹框显示Sprite精灵。

   然后一时兴起,想做一个放到Editor里面显示的桌面精灵,发现默认窗口背景没法透明,因此多加了张背景图。这个主要难点在GUI.DrawTextureWithTexCoords方法,它的坐标计算有点麻烦,有点像shader里的对贴图的Tilling和offset,是将图片长宽做Normalize了的。左下角(0f,0f),右上角为(1.0f,1.0f),但Sprite的行数和宽数又同数组下标,即为行数为10,宽数为10,每个Sprite的索引地址是0f - (1.0f - 0.1f)...

LF5paHb8P8CJogUdU601.jpg

xeA1qnTYyYctOBVZuWc1.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值