【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);
        }
}

这个可以绘制,但是如果加载坐标校准和缩放尺寸显示会有问题,需要看看是什么问题;

posted @ 2024-11-04 15:10  lovewaits  阅读(2)  评论(0编辑  收藏  举报