Unity3d 面向对象设计思想(三)(对象的拆分)
2014-06-25 14:38
309 查看
最近看了一个Unity3d官网的Native 2d的一个Demo,发现Unity3d是一个纯面向对象的游戏引擎,
面向对象的程度,让我惊叹。
正常的,对象之间完全是独立工作,比如一个普通的ARPG游戏,一个人物拥有武器,可以攻击怪物,
我们可以把攻击动作封装到人物当中,这样人物拥有攻击属性,可以攻击到敌人。
但,在纯面向对象的封装的语言,这是不可以的,这样会使程序复杂起来,细想想,人物跟攻击根本
没什么关系,所以攻击跟人物是没有关系的,攻击动作不会是绑定到人物角色本身,而与
攻击本身相关的是武器,攻击的动作应该是武器发出来的。这样来分析,符合面向对象的思想;
再说如果游戏都有音乐,如果是攻击音效,可以在攻击时播放,人物受到伤害会音效会在人物受到伤害时播放,
如果是游戏的主声音呢,背景音乐呢,我们都可以帮定到主Camera上,再在Camera逻辑判断再播放,
这样完全是可以的。但,Unity3d不会提议这么做,在Unity3d中,所有游戏元素都是对象,音乐也是,
我们可以把主背景音乐封装成一个对象,这样方便管理。
还有车子在路上跑,这里牵涉到司机,我们可以简单封装成:
车子本身的行为:前进,后退,刹车,加速,停车
车子本身的特征:高档车,中档车,低档车
车子的特征或速度表现:发动机引擎
司机对象应该说跟车子本身的行为的一致,当然司机有自己的简单行为,嘲笑,技术
具体的移动行为表现:轮胎
在一个合格的面向对象的封装中,车子的速度应该体现是发动机引擎与司机的技术,个人觉得如果对象封装,
得封装一个移动引擎,用于驱动车子的速度。
其实面向对象与现实是分不开的,所有现实生活中的物体都是对象,比方说我在写博客:
简单的说是人物与电脑,输入的内容的行为表现应该是键盘,内容的表现形式是电脑屏幕
人物的行为是一种虚构,思想
:)
面向对象的程度,让我惊叹。
正常的,对象之间完全是独立工作,比如一个普通的ARPG游戏,一个人物拥有武器,可以攻击怪物,
我们可以把攻击动作封装到人物当中,这样人物拥有攻击属性,可以攻击到敌人。
但,在纯面向对象的封装的语言,这是不可以的,这样会使程序复杂起来,细想想,人物跟攻击根本
没什么关系,所以攻击跟人物是没有关系的,攻击动作不会是绑定到人物角色本身,而与
攻击本身相关的是武器,攻击的动作应该是武器发出来的。这样来分析,符合面向对象的思想;
再说如果游戏都有音乐,如果是攻击音效,可以在攻击时播放,人物受到伤害会音效会在人物受到伤害时播放,
如果是游戏的主声音呢,背景音乐呢,我们都可以帮定到主Camera上,再在Camera逻辑判断再播放,
这样完全是可以的。但,Unity3d不会提议这么做,在Unity3d中,所有游戏元素都是对象,音乐也是,
我们可以把主背景音乐封装成一个对象,这样方便管理。
还有车子在路上跑,这里牵涉到司机,我们可以简单封装成:
车子本身的行为:前进,后退,刹车,加速,停车
车子本身的特征:高档车,中档车,低档车
车子的特征或速度表现:发动机引擎
司机对象应该说跟车子本身的行为的一致,当然司机有自己的简单行为,嘲笑,技术
具体的移动行为表现:轮胎
在一个合格的面向对象的封装中,车子的速度应该体现是发动机引擎与司机的技术,个人觉得如果对象封装,
得封装一个移动引擎,用于驱动车子的速度。
其实面向对象与现实是分不开的,所有现实生活中的物体都是对象,比方说我在写博客:
简单的说是人物与电脑,输入的内容的行为表现应该是键盘,内容的表现形式是电脑屏幕
人物的行为是一种虚构,思想
:)
相关文章推荐
- Unity3d 面向对象设计思想(三)(对象的拆分)
- Unity3d 面向对象设计思想(五)(游戏背包的处理ii)
- Unity3d 面向对象设计思想(一)(UI的分配与调用)
- Unity3d 面向对象设计思想(二)(动态UI的分配与调度)
- 面向对象思想和面向对象设计原则之间的关系
- 面向对象开发与面向对象设计模式的几个核心的思想和概念 -java
- Unity3d 面向对象设计思想(四)(游戏背包的处理i)
- Unity3d 面向对象设计思想(四)(游戏背包的处理i)
- Unity3d 面向对象设计思想(五)(游戏背包的处理ii)
- Unity3d 面向对象设计思想(一)(UI的分配与调用)
- Unity3d 面向对象设计思想(六)(Unity3d网络异步数据)
- Unity3d 面向对象设计思想(六)(Unity3d网络异步数据)
- Unity3d 面向对象设计思想(六)(Unity3d网络异步数据)
- UIRoot.BroadCast(methodname, params) Unity3d 面向对象设计思想(二)(动态UI的分配与调度)
- Unity3d 面向对象设计思想(二)(动态UI的分配与调度)
- [Java编程思想]第11章 持有对象
- 面对对象思想4
- 面向对象思想设计原则
- 面向对象思想的头脑风暴(二)—— 详解继承与组合的优缺点
- ASP.Net面向对象思想