本文主要是介绍【Unity 3D】学习笔记二十五:unity游戏脚本(五),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
克隆游戏对象
在游戏中,可能会连续出现相同的游戏对象来实现游戏的某种效果,如发射子弹。这就要用上克隆游戏对象,克隆游戏对象与创建游戏对象的呈现方式是完全一样的,但在执行效率上来讲,克隆游戏对象的效率要高。
在克隆游戏对象的代码中,需要使用Instantiate( )方法来克隆游戏对象。不废话,先上代码。
//球体对象
var obj : GameObject;function Start()
{//获得球体对象obj = GameObject.Find("Sphere");
}function OnGUI()
{if(GUILayout.Button("开始克隆实例",GUILayout.Height(50))){//克隆一个obj的实例var clone :GameObject = Instantiate(obj, obj.transform.position, obj.transform.rotation);//8秒后销毁该实例,Destroy (clone, 8);}
}
点击开始克隆实例:
Instantiate()方法返回值就是克隆后的游戏对象。
destroy()方法第一个参数为需要销毁的游戏对象,第二个表示延迟多少秒后销毁。
动态为游戏对象添加脚本组件
在程序中,可使用AddComponent( )为某个游戏对象添加脚本组件。将需添加的脚本作为参数传入被添加脚本的游戏对象。
var obj : GameObject;function Start () {//获得立方体对象obj = GameObject.Find("Cube");
}function OnGUI(){if(GUILayout.Button("给立方体添加脚本组件",GUILayout.Height(50))){//添加cube_script脚本if(obj)obj.AddComponent("cube_script");}if(GUILayout.Button("删除立方体脚本组件",GUILayout.Height(50))){//删除cube_script脚本if(obj)Destroy (obj.GetComponent ("cube_script"));}if(GUILayout.Button("立即删除立方体对象",GUILayout.Height(50))){//删除立方体对象if(obj)Destroy (obj);}if(GUILayout.Button("5秒后删除立方体对象",GUILayout.Height(50))){//5秒后删除立方体对象if(obj)Destroy (obj,5);}
}
function Start(){Debug.Log("脚本添加成功");
}function OnDestroy (){Debug.Log("脚本删除成功");
}
运行:
控制面板信息:
点击添加脚本后多出一个相同脚本:
点击立即删除正方体:
这篇关于【Unity 3D】学习笔记二十五:unity游戏脚本(五)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!