Unity 3d单例脚本和单例类

using UnityEngine;
public class test:MonoBehaviour
{
 public static test instance;
 void Start()
 {
  instance = this;
 }
}

public class test1
{
 public static test1 instance;
 public test1 GetInstance()
 {
  if(instance==null)
  {
   instance=new test1();
  }
  return instance;
 }
}

 

 

 

 

 

Unity  通用单例类

using UnityEngine;
using System.Collections;

public class Singleton<T> : MonoBehaviour where T:MonoBehaviour
{
 private static T instance;
 public static T Instance
 {
  get{
   if(instance==null)
   {
    print("null");
    GameObject g=new GameObject("Singleton");
    instance=  g.AddComponent<T>();

   }
   return instance;
  }
 }
}

使用

using UnityEngine;
using System.Collections;

public class Singleapply : Singleton<Singleapply> {

 public void ShowText(string str)
 {
  print (str);
 }

 void Start()
 {
  Singleapply.Instance.ShowText ("Hello");
 }
}

发布了14 篇原创文章 · 获赞 4 · 访问量 9143

猜你喜欢

转载自blog.csdn.net/zhangzhaoyuxunlei/article/details/44625183