Unity简单的外观模式

举一个例子  两种喝茶方式   那种方式简单呢?



实例演示:   分别定义三个类  烧水    茶具     泡茶叶



3.在定义中间类



4.测试类


Unity外观模式,也称为门面模式,是一种设计模式,主要用于提供一个简洁的接口来访问复杂或依赖于多种行为的对象结构。在游戏开发中,比如实现人物角色的移动功能,可以创建一个“人物控制器”(CharacterController)的外观(门面)类。 这个外观类会封装底层的具体移动系统,如直接控制、动画驱动或物理引擎等。玩家只需通过外观类调用“move()”、“转向()”等公共接口,而无需关心实际的移动机制。这样做的好处是: 1. **简化接口**:外部代码只需要处理基本的动作操作,不需要了解复杂的内部实现细节。 2. **易于维护**:如果需要更改底层移动系统的实现(例如从轮滑鞋切换到奔跑),只需要修改外观类即可,不会影响到使用它的游戏逻辑部分。 3. **提高灵活性**:可以方便地添加新的移动方式,如飞行、攀爬等,只需要增加对应的子类并注册到外观类中。 ```csharp // 假设我们有一个抽象的IMove接口 public interface IMove { void Move(float speed); void Turn(float degree); } // 外观类CharacterController public class CharacterController : MonoBehaviour, IMove { private MovementSystem _movementSystem; public CharacterController(MovementSystem movementSystem) { _movementSystem = movementSystem; } public void Move(float speed) { _movementSystem.Move(speed); } public void Turn(float degree) { _movementSystem.Turn(degree); } } // 具体的移动实现如PhysicsMoveSystem或AnimationMoveSystem public class PhysicsMoveSystem : IMove { // ... } // 使用时 public class PlayerController : MonoBehaviour { private CharacterController characterController; void Start() { characterController = GetComponent<CharacterController>(); characterController.SetMovementSystem(new PhysicsMoveSystem()); } void Update() { characterController.Move(Input.GetAxis("Vertical")); characterController.Turn(Input.GetAxis("Horizontal")); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值