美文网首页优质编程入门教程unity3D技术分享
Unity 游戏框架搭建 2019 (二十七) 弃用的代码警告解

Unity 游戏框架搭建 2019 (二十七) 弃用的代码警告解

作者: 凉鞋的笔记 | 来源:发表于2020-04-12 16:15 被阅读0次

在前两篇,我们把所有的示例重头到尾整理了一遍。

当前的状态如下:

  1. 要做的事情:
    • (完成) 备份:导出文件,并取一个合理的名字。
  2. 遗留问题:
    • (完成) 第八个示例与之前的示例代码重复,功能重复。
    • (完成) 方法所在类的命名有问题。
    • 菜单栏显示顺序问题。
    • 弃用的代码警告
  3. 约定和规则:
    • 每个示例在 QFramework 目录下创建一个文件夹,文件夹的格式是: 数字.示例的功能
    • 每个示例写一个脚本,脚本中包含可复用的静态方法和 MenuItem 方法。
    • 每写一个示例进行一次导出,导出的文件名后边加上日期和时间,这个功能已经在导出功能里内置了。
    • 每次有 API 变更的时候做一次备份,备份的名字采用 QFramework_vX.Y.Z 格式。
    • 每次进行整理的时候要确保是在功能有效的情况下进行删除和变更。
  4. 示例分类:
    1. 知识学习&收集
      • API 收集
      • C# 语法实践
    2. 库本身的功能
      • 规则实现
      • 使用流程提供及优化
      • 效率提升(编码体验、逻辑复用)
      • 项目实用工具收集

我们看下以上遗留问题里,示例重复这个做完了,还差一个菜单栏显示顺序问题,还有一个弃用的代码的警告。

两个看起来,弃用代码的警告马上就有思路了,就只要保证功能正确的情况下重写代码就好了。

我们看下编辑器的弃用代码警告:



目前有 5 个警告,主要集中在示例 7 和把中。我们一项一项解决。

先看示例七的代码:

using System.IO;

#if UNITY_EDITOR
using UnityEditor;
#endif

using UnityEngine;

namespace QFramework
{
    public class CustomShortCut : MonoBehaviour
    {
#if UNITY_EDITOR
        [MenuItem("QFramework/7.自定义快捷键 %e")]
        private static void MenuClicked()
        {
            var generatePackageName = PreviousFunctions.GenerateUnityPackageName();
            
            PreviousFunctions.ExportPackage("Assets/QFramework",generatePackageName + ".unitypackage");
            
            PreviousFunctions.OpenInFolder(Path.Combine(Application.dataPath, "../"));
        }
#endif
    }
}

很容易改。改完之后的代码如下:

using System.IO;

#if UNITY_EDITOR
using UnityEditor;
#endif

using UnityEngine;

namespace QFramework
{
    public class CustomShortCut : MonoBehaviour
    {
#if UNITY_EDITOR
        [MenuItem("QFramework/7.自定义快捷键 %e")]
        private static void MenuClicked()
        {
            var generatePackageName = Exporter.GenerateUnityPackageName();
            
            EditorUtil.ExportPackage("Assets/QFramework",generatePackageName + ".unitypackage");
            
            EditorUtil.OpenInFolder(Path.Combine(Application.dataPath, "../"));
        }
#endif
    }
}

之后编译后的结果如下所示:



还剩两个,我们看下第 8 个示例的代码。

...
public class PreviousFunctions
{
    ...
    [MenuItem("QFramework/8.总结之前的方法/3.生成文件名到剪切板")]
    private static void MenuClicked3()
    {
        CommonUtil.CopyText(GenerateUnityPackageName());        
    }
        
    [MenuItem("QFramework/8.总结之前的方法/4.导出 UnityPackage")]
    private static void MenuClicked4()
    {
        EditorUtil.ExportPackage("Assets/QFramework",GenerateUnityPackageName() + ".unitypackage");
    }
    ...
}
...

主要问题在 GenerateUnityPackageName,这个在整理第个示例的时候忘记了,改成如下代码就好了。

...
public class PreviousFunctions
{
    ...
    [MenuItem("QFramework/8.总结之前的方法/3.生成文件名到剪切板")]
    private static void MenuClicked3()
    {
        CommonUtil.CopyText(Exporter.GenerateUnityPackageName());       
    }
        
    [MenuItem("QFramework/8.总结之前的方法/4.导出 UnityPackage")]
    private static void MenuClicked4()
    {
        EditorUtil.ExportPackage("Assets/QFramework",Exporter.GenerateUnityPackageName() + ".unitypackage");
    }
    ...
}
...

这样编译警告就没有了。

警告的问题全部解决了,弃用的方法就全部可以删掉了,因为弃用的方法,只要被调用了才会报警告,但是在删除弃用方法的时候要小心一点,因为弃用的方法有可能是在某个宏里边调用的,这时候最好用一下 IDE 的全局搜索字符串,一般 IDE 都会有,怎么用,自己用搜索引擎查一下就行了。

今天的内容就这些,拜拜~。

转载请注明地址:凉鞋的笔记:liangxiegame.com

更多内容

相关文章

网友评论

    本文标题:Unity 游戏框架搭建 2019 (二十七) 弃用的代码警告解

    本文链接:https://www.haomeiwen.com/subject/kimvmhtx.html