新建的游戏对象本身不具备任何属性,因此没有任何功能作用。为了让它具备一些功能,就必须给它添加游戏组件。
常用的组件有物理类、风格类、粒子类等。
添加游戏组件时,需要使用AddComponent()方法。而删除组件时需要使用Object.Destroy()方法,参数为需要删除的游戏对象或游戏组件。如果删除的是某一游戏对象,对象中的所有组件都会被一并删除。
using UnityEngine;
using System.Collections;
public class AddAndModifyComponent : MonoBehaviour {
public Texture texture;
private GameObject obj;
private Renderer render;
void Start () {
// 获取游戏对象
obj = GameObject.Find("Cube");
// 获取该对象的渲染器
render = obj.GetComponent<Renderer>();
}
void OnGUI () {
if(GUILayout.Button("添加颜色",GUILayout.Width(100),GUILayout.Height(50)))
{
//修改渲染颜色为红色
render.material.color = Color.red;
}
if(GUILayout.Button("添加贴图",GUILayout.Width(100),GUILayout.Height(50)))
{
// 添加组件贴图
render.material.mainTexture = texture;
}
//
if(GUILayout.Button("销毁对象",GUILayout.Width(100),GUILayout.Height(50)))
{
// 销毁对象
Object.Destroy(render);
}
}
}
上述代码中,render.material引用当前脚本绑定对象的材质,直接为其赋值即可修改对象材质。
render.material.color为材质的颜色,
render.material.mainTexture为材质的主要贴图。