常见的游戏设计模式

设计模式是在开发中的一种通用的解决方案,下面介绍几种常用的设计模式

一,单例模式

单例模式指一个类只有一个实例,且提供一个全局访问的点

我们可以想一下,我们如果要在一个c#脚本中访问另外一个脚本,那我们每次获取实 例时都要创建它,这样每次创建和销毁都会占用大量的系统资源,故通过单例模式就可 以解决这方面问题,尤其是对于整个游戏生命周期中唯一存在的管理类(如音频管理器, 游戏管理器,UI管理器等)

在实现单例模式时,通常要考虑以下几个方面:

(1)静态实例:为了全局访问,使用静态字段来存储单例对象

(2)私有构造函数:确保外部无法直接实例化该类

(3)生命周期管理:确保单例对象在unity的生命周期中保持有效,并且不会因为场 景切换而销毁

1,标准的单例实现

下面是unity中常见的单例模式实现方法,适用于游戏管理器类

例:

using UnityEngine;

public class GameManager : MonoBehaviour
{

    // 静态实例,供外部访问
    public static GameManager Instance { get; private set; }



    // 确保在应用程序中只有一个实例
    private void Awake()
    {

        // 如果没有实例,设置为当前对象
        if (Instance == null)

        {

            Instance = this;

        }

        else
        {

            // 如果已有实例,则销毁当前对象
            Destroy(gameObject);

        }

    }



    // 示例方法
    public void StartGame()
    {

        Debug.Log("Game Started!");

    }

}

解析:

(1)Instance:提供一个公共的静态属性,允许其他脚本访问该类的实例

(2)Awake():在对象被加载时检查是否已经存在实例,如果没有,当前对象 成为单例,如果已有实例,则销毁当前对象,确保只有一个实例存在

2,使用示例

在其他脚本中访问单例并调用方法

例:

public class PlayerController : MonoBehaviour

{

    void Start()

    {

        // 使用 GameManager 的单例来启动游戏

        GameManager.Instance.StartGame();

    }

}

二,观察者模式

也叫发布/订阅模式,其实就是c#中的事件,打个比方就是假如有一个微信公众号,当 它发通知,只有订阅这个公众号的人才会收到通知,没有订阅的则不会收到通知

在unity中实现观察者模式也是利用的c#的事件,了解事件的话,观察者模式就很好实 现

三,工厂模式

核心思想是通过一个工厂来实例化对象,而不是在代码中通过new关键字来创建对象, 工厂模式通常用于当对象的创建过程比较复杂或者需要根据某些条件动态决定创建哪 种对象时

四,装饰者模式

这个模式通常用来在不改变类本身的情况下,给对象添加额外的功能或行为

在unity通常可以用于增强游戏对象的行为,例如添加额外的功能给玩家角色,敌人, 武器,UI等

五,此外还有策略模式,状态模式等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真的没事鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值