Unity 游戏框架搭建 2019 (四十二、四十三) MonoBehaviour 简化 & 定时功能
2020-05-04 10:06
776 查看
## MonoBehaviour 简化
在前两篇,我们完成了第九个示例。为了完善第九个示例,我们复习了类的继承,又学习了泛型和 params 关键字。
我们已经接触了类的继承了。接触继承之前,把类仅仅当做是方法的集合,接触了继承之后,我们的类还可以使用继承来解决一些问题。
## 第十个示例
在 Unity 中,我们的脚本都往往继承自 MonoBehaviour,继承了之后我们就可以在脚本内编写很多功能。比如访问 transform/gameObject,再比如控制动画接收碰撞事件等等。另外我们继承了 MonoBehaviour 才能被作为脚本挂到 GameObject 上。
仅仅是通过继承,MonoBehaviour 的很多功能都能够进行复用。所以继承的一个作用就是代码复用。而我们知道方法也可以代码复用,泛型可以对结构进行复用。那么继承能是复用什么?
继承既能复用代码也能复用结构。不过术业有专攻,有的情况下使用方法进行复用更合理,有的情况下适用于泛型,当然也有适用继承的情况。
像 GameObjectSimplify 和 TransformSimplify,这两种方法集,目前其实通过继承来实现会更好一点。因为这两个类中的方法全部都是要传一个固定的对象进去的,比如 GameObjectSimiplify 的每个方法第一个参数都是 GameObject 参数,而 TransformSimplify 也是如此。他们使用起来也不是很方便。
使用代码如下:
```cs
GameObjectSimplify.Show(gameObject);
TriansformSimplify.Identity(transform);
```
可以看出都需要把所有的类名字全部打出来,而使用继承就会好很多。
我们先实现第十个示例代码,如下
MonoBehaviourSimplify.cs
```cs
using UnityEngine;
namespace QFramework
{
public partial class MonoBehaviourSimplify : MonoBehaviour
{
public void Show()
{
GameObjectSimplify.Show(gameObject);
}
public void Hide()
{
GameObjectSimplify.Hide(gameObject);
}
public void Identity()
{
TransformSimplify.Identity(transform);
}
}
public class Hide : MonoBehaviourSimplify
{
private void Awake()
{
Hide();
}
#if UNITY_EDITOR
[UnityEditor.MenuItem("QFramework/10.MonoBehaviour 简化", false, 11)]
static void MenuClicked()
{
UnityEditor.EditorApplication.isPlaying = true;
var gameObj = new GameObject("Hide");
gameObj.AddComponent
相关文章推荐
- Unity 游戏框架搭建 2019 (三十九、四十一) 第四章 简介&方法的结构重复问题&泛型:结构复用利器
- Unity 游戏框架搭建 MonoBehaviour单例的模板
- Unity 游戏框架搭建 (三) MonoBehaviour单例的模板
- Unity 游戏框架搭建 (三) MonoBehaviour单例的模板
- Unity 游戏框架搭建 (三) MonoBehaviour单例的模板
- Unity 游戏框架搭建 (三) MonoBehaviour单例的模板
- Unity 游戏框架搭建 (十一) 简易AssetBundle打包工具(一)
- Unity 游戏框架搭建 (九) 减少加班利器-QConsole
- Unity 游戏框架搭建 (四) 简易有限状态机
- Unity 游戏框架搭建 (十二) 简易AssetBundle打包工具(二)
- Unity 游戏框架搭建 (十二) 简易AssetBundle打包工具(二)
- Unity 游戏框架搭建 (五) 简易消息机制
- Unity 游戏框架搭建 单例的模板
- [Unity&接口]子类即继承接口类也继承MonoBehaviour的快速操作和重构实现
- Unity 游戏框架搭建 (十三) 无需继承的单例的模板
- Unity 游戏框架搭建--简易有限状态机
- Unity 游戏框架搭建 (十三) 无需继承的单例的模板
- Unity 游戏框架搭建 (六) 关于框架的一些好文和一些思考
- Unity 游戏框架搭建 (七) 减少加班利器-QApp类
- Unity 游戏框架搭建 (十四) 优雅的QSignleton(零) QuickStart