美文网首页
Unity中,需主动放置到场景中的单例

Unity中,需主动放置到场景中的单例

作者: 全新的饭 | 来源:发表于2023-07-06 11:30 被阅读0次

如与当前场景逻辑强相关的光效、音效的配置和播放的控制代码。

限制场景中最多只能存在1个:第一次调用时,判断场景中是否至少存在1个,若存在多个,则保留1个,将其余的删除。

实际使用时,若不存在,可通过获取配置的方式主动创建1个(如实例化预制体的方式)

示意代码:MainGamePlayEffectCtr.cs

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
///  单例,需主动放置到场景中(因需要在其上配置光效资源)
/// </summary>
public class MainGamePlayEffectCtr : MonoBehaviour
{
    // todo: 一些光效预制体或一个光效配置文件

    private static MainGamePlayEffectCtr _instance;
    public static MainGamePlayEffectCtr Instance
    {
        get
        {
            if (_instance == null)
            {
                var allInstances = FindObjectsOfType<MainGamePlayEffectCtr>();
                if (allInstances.Length > 0)
                {
                    for (int i = allInstances.Length - 1; i >= 0; i--)
                    {
                        if (i == 0)
                        {
                            _instance = allInstances[i];
                            _instance.Init();
                        }
                        else
                        {
                            Destroy(allInstances[i]);
                        }
                    }
                }
                else
                {
                    Debug.Log("获取MainGamePlayEffectCtr失败!需手动在场景中放置1个!!");
                }
            }
            return _instance;
        }
    }

    private void OnDestroy()
    {
        MyDestroy();
    }

    public void Init()
    {
    }

    public void MyDestroy()
    {

    }

    // todo:若干个播放具体光效的方法(实际内部再调用EffectSys播放光效),在游戏各处调用。
}

相关文章

  • Unity中的单例总结

    Unity中的单例总结 单例模式是程序员在编程时接触到的最基础设计模式之一,简单一句话概括就是对象的唯一实例。 在...

  • Spring IOC的一些高级特性

    Lookup方法注入 在大部分的应用场景中,容器中的大部分bean是singleton类型的。当一个单例bean需...

  • 单例

    1.MonoBehavior单例 其实在unity中,如果脚本是继承monobehavior,那么使用起单例来更加...

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

  • 单例模式和Unity中单例的区别

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模...

  • 单例(饿汉、懒汉、静态内部类、枚举)

    什么是单例   所谓单例,指的就是单实例,有且仅有一个类实例。 应用场景   常应用于不能存在多个实例的场景中。例...

  • 单例模式

    参考:23种设计模式全解析(转载版) 单例模式:java应用,jvm中,该类的对象只有一个实例。 使用场景:对象需...

  • 第二章 应用最广的模式——单例模式

    单例模式的使用场景:在单例模式中,单例对象的类必须保证只有一个实例存在。如在一个应用中,应该只有一个ImageLo...

  • iOS 伪单例模式

    本文仅探讨 iOS 中单例的适用场景及生命周期管理,如需单例教程及其定义作用的请访问:设计模式系列14--单例模式...

  • Zenject框架(二)

    Hello World 示例 按以下步骤操作后,可以运行该例。 在Unity中创建新场景 在Hierarchy面板...

网友评论

      本文标题:Unity中,需主动放置到场景中的单例

      本文链接:https://www.haomeiwen.com/subject/oupludtx.html