使用脚本创建查找修改销毁游戏对象

1.创建一个游戏工程, 命名为ScriptCFMDGo


2.在Project视图中创建3个文件夹, Scene文件夹、Resources文件夹和Script文件夹

3.将当前场景保存为GameScene

4.创建CFODGo游戏脚本

5.在Hierarchy视图中创建一个空的GameObject, 命名为GameManager, 并把CFODGo绑定在该游戏对象上

6.游戏对象的创建、查找、添加组件、获取组件、销毁函数
(1).GameObject.CreatePrimitive()创建一个游戏对象并指定一个Unity自带的模型
(2).transform.position设置游戏对象的位置, 这个属性设置的是位于世界坐标系下的位置
(3).GameObject.Find (string name)查找对应名称的游戏对象
(4).AddComponent()对游戏对象添加一个组件
(5).GetComponent()获取游戏对象的一个组件
(6).GameObject.Destroy(Object obj)销毁游戏对象

7.代码清单

using UnityEngine;

public class CFODGo : MonoBehaviour 
{
	void OnGUI()
	{
		if(GUILayout.Button("create Cube"))
		{
			// create Cube GameObject
			GameObject go = GameObject.CreatePrimitive (PrimitiveType.Cube);
			// set Cube name
			go.name = "Cube";
			// set Cube position
			go.transform.position = new Vector3 (-1, 0, 0);
		}

		if(GUILayout.Button("find Cube"))
		{
			// find Cube
			GameObject cubeGo = GameObject.Find ("Cube");
			if(cubeGo != null)
			{
				// print Cube name
				Debug.Log ("cube name: " + cubeGo.name);
			}
		}

		if(GUILayout.Button("get Renderer Component from Cube"))
		{
			// find Cube
			GameObject cubeGo = GameObject.Find ("Cube");
			if(cubeGo != null)
			{
				// get Renderer Component
				Renderer renderer = cubeGo.GetComponent<Renderer> ();
				// modify Color
				renderer.material.color = Color.red;
			}
		}

		if(GUILayout.Button("add Rigidbody Component for Cube"))
		{
			// find Cube
			GameObject cubeGo = GameObject.Find ("Cube");
			if(cubeGo != null)
			{
				// add Rigidbody Component
				cubeGo.AddComponent<Rigidbody>();
			}
		}

		if(GUILayout.Button("destroy Cube"))
		{
			// find Cube
			GameObject cubeGo = GameObject.Find ("Cube");
			if(cubeGo != null)
			{
				// destroy Cube
				GameObject.Destroy(cubeGo);
			}
		}
	}
}

8.运行游戏


猜你喜欢

转载自blog.csdn.net/aihiao/article/details/79802106
今日推荐