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

当前的状态如下:

  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 (二十七) 弃用的代码警告解决的更多相关文章

  1. Unity 游戏框架搭建 2019 (二十七、二十八)弃用的代码警告解决&弃用的代码删除

    在前两篇,我们把所有的示例重头到尾整理了一遍. 当前的状态如下: 要做的事情: (完成) 备份:导出文件,并取一个合理的名字. 遗留问题: (完成) 第八个示例与之前的示例代码重复,功能重复. (完成 ...

  2. Unity 游戏框架搭建 2019 (二十六) 第一轮整理完结

    昨天呢我们把第八个示例整理完了.整理之后学习了类的第一作用:方法的集合,还有 Obselete 这个 API.并且在进行整理的时候贯彻了我们新的约定和规则:先确保功能有效,再去做变更和删除. 今天我们 ...

  3. Unity 游戏框架搭建 2019 (二十一、二十二) 第三章简介&整理前的准备

    整理前的准备 到目前为止,我们积攒了很多示例了,并且每个示例也都贯彻了最的约定和规则. 在上一篇的小结也说了一个比较新的东西:编程体验优化. 在之前我们还积攒了一个问题:代码重复问题. 我们可是忍住整 ...

  4. Unity 游戏框架搭建 2019 (二十三) 备份与版本号&危险的操作

    先列出上一篇的总结: 要做的事情: 备份:导出文件,并取一个合理的名字. 遗留问题: 第八个示例与之前的示例代码重复,功能重复. 约定和规则: 每个示例在 QFramework 目录下创建一个文件夹, ...

  5. Unity 游戏框架搭建 2019 (二十九) 方法所在类命名问题诞生的原因

    我们在整理阶段解决了一些意外的问题.但是这些问题仅仅只是被解决而已,我们并没有去思考过这些问题是为什么产生的?以及在以后我们如何去避免这些问题的产生? 方法所在类的命名问题,最后我们通过方法分类解决了 ...

  6. Unity 游戏框架搭建 2019 (二十五) 类的第一个作用 与 Obselete 属性

    在上一篇我们整理到了第七个示例,我们今天再接着往下整理.我们来看第八个示例: #if UNITY_EDITOR using UnityEditor; #endif using UnityEngine; ...

  7. # Unity 游戏框架搭建 2019 (三十四、三十五) 9 ~ 10 示例整理

    第九个示例 目前代码如下: using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif namespace QFramework { p ...

  8. Unity 游戏框架搭建 2019 (九~十二) 第一章小结&第二章简介&第八个示例

    第一章小结 为了强化教程的重点,会在合适的时候进行总结与快速复习. 第二章 简介 在第一章我们做了知识库的准备,从而让我们更高效地收集示例. 在第二章,我们就用准备好的导出工具试着收集几个示例,这些示 ...

  9. Unity 游戏框架搭建 2019 (十八~二十) 概率函数 & GameObject 显示、隐藏简化 & 第二章 小结与快速复习

    在笔者刚做项目的时候,遇到了一个需求.第一个项目是一个跑酷游戏,而跑酷游戏是需要一条一条跑道拼接成的.每个跑道的长度是固定的,而怪物的出现位置也是在跑道上固定好的.那么怪物出现的概率决定一部分关卡的难 ...

随机推荐

  1. Linux学习--4.用户和组的管理

    用户和组的管理 前言 本篇文章主要讲Linux系统下用户和组的概念,还有添加用户和组,修改用户和组的基本操作,会涉及不少与之相关的配置文件与命令的介绍,几乎所有 正文 首先,简单提下概念,用户是操作系 ...

  2. ubuntu1804自带的vim和vi都是用什么版本?

    之前搜索vim一些命令时,经常看到有人说ubuntu自带的vim是是vim.tiny的,功能不全. 什么需要先卸载,再重装,真的是这样吗? 我查了一下,vim的版本号 vim --version vi ...

  3. MySQL 【教程一】

    前言 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库. 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据. 我们也可以将数据存 ...

  4. Prometheus 监控平台的搭建

    1. 环境准备 两台ubuntu 16.04 服务器内网IP 作用 安装软件 172.16.4.11                 监控的服务端                Prometheus( ...

  5. Spring解决循环依赖,你真的懂了吗?

    导读 前几天发表的文章SpringBoot多数据源动态切换和SpringBoot整合多数据源的巨坑中,提到了一个坑就是动态数据源添加@Primary接口就会造成循环依赖异常,如下图: 这个就是典型的构 ...

  6. liunx 安装 zookeeper(转)

    转自:https://www.cnblogs.com/expiator/p/9853378.html linux安装zookeeper及使用 一.安装条件 想要安装zookeeper,必须先在linu ...

  7. Swift中的感叹号( ! )与问号( ? )之谜

    基本了解 在Swift代码会经常看到定义属性或方法参数时类型后面会紧跟一个感叹号( ! )或问号( ? ), 刚开始接触Swift的童鞋就可能不太明白之代表什么意思,一头雾水,开始凌乱了. 本文将带你 ...

  8. 关于Quartz .NET(V3.0.7)的简要说明

    目录 0. 任务调度 1. Quartz .NET 1.1 基本概念 1.2 主要接口和对象 2. 使用示例 2.0 准备工作 2.1 每间隔一定时间间隔执行一次任务 2.3 某天的固定时间点执行任务 ...

  9. Vue中使用echarts,ajax请求的远程数据赋值给图表不刷新的问题和解决办法

    问题: vue-cli搭建的项目,在mounted钩子函数里面创建echarts图表,本地模拟数据可以正常显示,但是当将ajax请求的远程数据赋值给图表时,图表并不会刷新. 解决办法: 刚开始以为是v ...

  10. 洛谷P1003 铺地毯 模拟

    这一题就是一个很普通的模拟,每次输入的时候存储四个角的值 把四个角的横纵坐标存储在一排.然后在倒序遍历一遍,查找的时候就看所要查找的坐标在不在这个范围内,如果找到了就标记一下再输出,如果没有找到就输出 ...