代码生成游戏对象、设置对象属性、添加组件
1、利用代码生成游戏对象
GameObject obj=GameObject.CreatePrimitive(PrimitiveType.Cube);
参数为枚举类型,其中包含了几种可以生成的游戏对象

实例.1
点击鼠标左键,每点击一次生成一个cube
float yPos = 0.5f;//第一个cube的位置 //鼠标点击事件 void OnMouseDown() { //创建一个游戏对象 参数:枚举类型,包含了几种可以生成的gameobject GameObject cubeObj = GameObject.CreatePrimitive(PrimitiveType.Cube); //对生成的游戏对象进行设置 //位置 cubeObj.transform.position = new Vector3(0,yPos,0); //没生成一个都沿着Y轴叠加 yPos++; //贴图 //加载贴图资源 //加载Resource下Images下的文件名为1的文件资源,无需后缀名 Texture cubeText = Resources.Load("Images/1") as Texture; cubeObj.renderer.material.mainTexture = cubeText; }
共点击了6次,生成了6个cube

2、对由代码生成的游戏对象添加组件
生成的游戏对象.AddComponent();方法对生成的游戏对象添加组件
实例.2
-在实例.1中添加一个Script组件,使生成的cube被点击后消失。
-销毁游戏对象代码,类名为 ClickDestroy
/// <summary> /// 点击GameObject使其销毁 /// </summary> public class ClickDestroy : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } //销毁被点击的GameObject void OnMouseDown() { GameObject.Destroy(gameObject); } }
-生成cube的代码
float yPos = 0.5f;//第一个cube的位置 //鼠标点击事件 void OnMouseDown() { //创建一个游戏对象 参数:枚举类型,包含了几种可以生成的gameobject GameObject cubeObj = GameObject.CreatePrimitive(PrimitiveType.Cube); //对生成的游戏对象进行设置 //位置 cubeObj.transform.position = new Vector3(0, yPos, 0); //没生成一个都沿着Y轴叠加 yPos++; //贴图 //加载贴图资源 //加载Resource下Images下的文件名为1的文件资源,无需后缀名 Texture cubeText = Resources.Load("Images/1") as Texture; cubeObj.renderer.material.mainTexture = cubeText; ///给生成的游戏对象添加组件。 ///对代码生成的游戏对象不能使用拖拽方式添加组件,这类操作也可以用代码实现 //AddComponent方法参数有2个重载,一种参数为要添加的组件名称 另一种是添加的组件类型 //cubeObj.AddComponent("ClickDestroy"); cubeObj.AddComponent(typeof(ClickDestroy)); }
-点击了第3、6个cube使其消失

-添加了缸体组件后,点击第二个cube的效果

浙公网安备 33010602011771号