Unity中使用单例
目录
一、目的
1、想知道:Unity中使用单例
1、想知道:局部变量中使用到了单例,那么变得永远是一个对象
二、参考
1、
- 总结:待检测
三、注意
1、
四、操作:一:整个游戏只建立一个游戏类型,修改的都是修改一个对象
1、运行效果:修改局部变量中的值,也会修改单例值,因为就一个对象
1、MyGameMode.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
/// <summary>
/// 目的:游戏模式
/// </summary>
public class MyGameMode : MonoBehaviour
{
/// <summary>
/// 目的:游戏模式
/// </summary>
public enum myEnum_gameMode
{
/// <summary>空</summary>
NULL,
/// <summary>待机</summary>
STANDBY,
/// <summary>留言欣赏</summary>
ENJOY,
/// <summary>我要留言</summary>
WRITE
};
/// <summary>
/// 目的:游戏模式
/// </summary>
[HideInInspector]
public static MyGameMode instance_MyGameMode;
/// <summary>
/// 目的:游戏模式类型
/// </summary>
[HideInInspector]
private myEnum_gameMode gameMode;
/// <summary>
/// 目的:设置和获取 游戏模式
/// </summary>
public myEnum_gameMode SetGet_GameMode
{
get { return gameMode; }
set { gameMode = value; }
}
private void Awake()
{
instance_MyGameMode = this;
}
public void Test()
{
print("MyGameMode类中 gameMode:" + gameMode);
}
}
1、拖到组件上面
1、别的地方调用
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 目的:游戏的主逻辑
/// </summary>
public class MyMainLogic : MonoBehaviour
{
// Use this for initialization
void Start()
{
//设置游戏模式
MyGameMode myGameMode = GameObject.FindWithTag("ScriptsHold").GetComponent<MyGameMode>();
myGameMode.SetGet_GameMode =MyGameMode.myEnum_gameMode.STANDBY;
//myGameMode.Test();
print("局部变量中:myGameMode.SetGet_GameMode:" + myGameMode.SetGet_GameMode);
myGameMode.Test();
}
// Update is called once per frame
void Update()
{
}
}