Unity 泛型T的用法

原创 2015年07月06日 20:00:11

  大家好!我是小唐,今天做实例化对象的时候,想着项目多处需要实例化对象,功能相似,就想着写成一个公共的方法,但是不同的对象实例化后增加的脚本可能是不一样的,现在就考虑怎么把脚本也就是类作为参数进行传递,问了一下朋友,然后朋友告诉我说用泛型,然后自己就研究写了一下,分享给你们,写了一个泛型类和泛型方法。

using UnityEngine;
using System.Collections;

//方式一:泛型类
public class ActivityManageData<T>:MonoBehaviour where T:MonoBehaviour
{
	private T intance;
	public void InstantiateObj(GameObject obj,GameObject ParentObj,Vector3 vec3)
	{
		GameObject mObj = Instantiate (obj, vec3, Quaternion.identity) as GameObject;
		intance=mObj.AddComponent<T>();
		mObj.transform.parent = ParentObj.transform;
		mObj.transform.localScale = Vector3.one;
	}
}

//方式二:泛型方法
public class MyContent:MonoBehaviour
{
	GameObject mObj;
	GameObject mParentObj;
	Vector3 mVec3;

	public MyContent(GameObject obj,GameObject ParentObj,Vector3 vec3)
	{
		this.mObj = obj;
		this.mParentObj = ParentObj;
		this.mVec3 = vec3;
	}

	public void  InstantiateObj<T>(T t) where T:Component
	{
		mObj = Instantiate (mObj, mVec3, Quaternion.identity) as GameObject;
		mObj.AddComponent<T>();
		mObj.transform.parent = mParentObj.transform;
		mObj.transform.localScale = Vector3.one;
	}	
}
在调用的时候两种方式直接实例化对象给泛型T指定具体的类型就OK了。

相关文章推荐

C#泛型在unity3D中的运用.

泛型是什么? 这是摘自百度百科中对泛型的介绍: ? 泛型是c#2.0的一个新增加的特性,它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会...

C# Unity 对于泛型接口的支持

所以用户实现我们框架开放出去的接口后,我们只能通过反射来获取用户的实现类。这样一个问题就是我们虽然定义了接口, 但其实我们依然依赖于用户的实现,同时框架启动异常的慢。...

unity3d研究之C# 泛型

泛型是什么? 这是摘自百度百科中对泛型的介绍: ? 泛型是c#2.0的一个新增加的特性,它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,...

Unity泛型单例模式

Unity泛型单例模式这是单例模式代码:这个不用挂在场景里 其实也挂不进去using UnityEngine; using System.Collections;public class Single...

unity泛型单例

参考自:http://wiki.unity3d.com/index.php/Singleton我们要使用Unity3d在Object类中提供了一个静态函数 :Object.DontDestroyOnL...

Unity3d中 C# 单例类 <泛型>

此篇文章是以Unity3d 中 使用C#为语言为前提的. 1. 在C#中使用泛型单利的话, 我们可以非常简单的用好几种不同方式去实现. 比如写一个我经常写的手法: public class...

Unity中添加组件的几种方法

一、在编辑器上面添加一个组件。 二、在脚本中利用AddComponent函数添加一个组件,例如:...

【C#】C#关键字-where(泛型类型约束)

文章参考:http://blog.csdn.net/startwithdp/article/details/25636737 http://www.cnblogs.com/soundc...

[C#]Lambda表达式和Where语法

之前一直以为C#中Lambda表达式和Where语法很神圣,看人家写出一串这样的代码出来都感觉好高深,其实只是不敢接触而已,然后今晚看了一下,其实仔细理解一下也很简单!看例子:[code]csharp...

where T : class 泛型约束

.NET支持的类型参数约束有以下五种: where T : struct                               | T必须是一个结构类型 where T : class   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unity 泛型T的用法
举报原因:
原因补充:

(最多只允许输入30个字)