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#语言编写面向对象程序增加了极大的效力和灵活性。不会...
  • huang9012
  • huang9012
  • 2015年01月09日 16:10
  • 2240

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

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

在Unity3D中使用泛型(上)

在Unity3D中使用泛型(上)目录在Unity3D中使用泛型上 目录 为什么需要泛型机制 泛型的一个例子 泛型的好处 Unity3D中常见的泛型 小结为什么需要泛型机制泛型机制的出现,最主要的目的就...
  • ssw940521
  • ssw940521
  • 2017年10月19日 15:44
  • 103

unity c# 泛型委托

我们可以通过这种方式老声明一个泛型委托 public delegate T DataChange(T arg); 我们可以在unity中写个例子来看一下泛型委托的用法,目录结构如下: Delet...
  • jk823394954
  • jk823394954
  • 2016年03月19日 21:38
  • 545

unity3d研究之C# 泛型

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

使用Unity的50个建议

关于这些建议 这些建议并不适用于所有的项目 这些建议是基于我与3-20人的小团队项目经验总结出来的结构、可重复使用性、明晰度都是有价的——团队规模和项目规模决定了是否值得付这个价。一些建议也许...
  • jbjwpzyl3611421
  • jbjwpzyl3611421
  • 2013年10月13日 14:58
  • 6507

Unity3d面试7:泛型;

http://www.taidous.com/bbs/thread-37143-1-1.html Unity问答第4期 1,FixedUpdate(),Update(),LateUpdate()的...
  • taotaoah
  • taotaoah
  • 2016年10月07日 21:29
  • 347

使用Unity3D的50个技巧:Unity3D最佳实践

关于使用Unity3D的50条最佳实践。
  • Neil3D
  • Neil3D
  • 2014年08月31日 21:35
  • 40126

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

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

Unity泛型单例模式

Unity泛型单例模式这是单例模式代码:这个不用挂在场景里 其实也挂不进去using UnityEngine; using System.Collections;public class Single...
  • ChuckGoal
  • ChuckGoal
  • 2016年01月05日 13:46
  • 1525
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unity 泛型T的用法
举报原因:
原因补充:

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