Unity代码分享Editor编辑器扩展Image和RawImage的相互转化

public class MenuUtils
{
    [MenuItem("CONTEXT/RawImage/2 Image Slice(Dis Raycast)")]
    static void ChangeRaw2ImageDisRaycast(MenuCommand  cmd)
    {
        var img = ChangeRaw2Image(cmd);
        img.raycastTarget = false;
    }
    [MenuItem("CONTEXT/RawImage/2 Image Slice")]
    static Image ChangeRaw2Image(MenuCommand  cmd)
    {
        var rawImage = cmd.context as RawImage;
        var path = AssetDatabase.GetAssetPath(rawImage.mainTexture);
        
        var go = rawImage.gameObject;
        Object.DestroyImmediate(rawImage);
                
        var img = go.AddComponent<Image>();
        img.type = Image.Type.Sliced;
        img.sprite = AssetDatabase.LoadAssetAtPath<Sprite>(path);

        string optmizeMatPath = AssetDatabase.GUIDToAssetPath("");
        if (optmizeMatPath != "")
        {
            var mat = AssetDatabase.LoadAssetAtPath<Material>(optmizeMatPath);
            if (mat != null)
                img.material = mat;
        }

        EditorUtility.SetDirty(go);
        return img;
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值