【Unity】2DSprite的扩展
之前扩展了UGUI的组件,现在需要,顺便吧2D组件也试着加一下扩展
===============================================
一、新建文件夹
我小哥传授给我的万能第一步,他一般不外传!
二、新建文件
新建失败!结束。。。
那是不可能的
三、修改文件名
既然派生不行,那就寄生于它
四、实现图集赋值
我们扩展之一,就是为了让SpriteRenderer也实现图集切换,让图集实现整体引用控制
这里基本上可以复制LImage的扩展,但是问题在于Image提供了一个overrideSprite可以用来显示,但不会保存对应的序列化信息,SpriteRenderer没有,em....
目前有两个方案:
1.编辑器模式下设置sprite显示 把资源Sprite的hideFlags = HideFlags.DontSave
// 创建一个临时 Sprite 以显示在编辑器中,但不进行序列化 Sprite tempSprite = CreateTempSprite(); tempSprite.hideFlags = HideFlags.DontSave; // 防止序列化 spriteRenderer.sprite = tempSprite;
这个需要实际打包去测试,是否会参与序列化;
2.使用 SceneView
绘制临时 Sprite
private void OnDrawGizmos() { if (!Application.isPlaying && tempSprite != null) { // 在 SceneView 中绘制 Sprite Gizmos.DrawGUITexture(new Rect(transform.position, new Vector2(1, 1)), tempSprite.texture); } }
这个可以绘制,但是如果加载坐标校准和缩放尺寸显示会有问题,需要看看是什么问题;