【Unity3D Script Keynote】
1、创建GameObject
1 if(GUILayout.Button("创建立方体",GUILayout.Height(50))) 2 { 3 //设置该模型默认为立方体 4 var objCube = GameObject.CreatePrimitive(PrimitiveType.Cube); 5 //给此对象添加一个刚体用于整理感应 6 objCube.AddComponent(Rigidbody); 7 //设置这个游戏对象的名称 8 objCube.name="Cube"; 9 //设置此模型材质的颜色 10 objCube.renderer.material.color = Color.blue; 11 //设置此模型在坐标 12 objCube.transform.position = new Vector3(0.0f,10.0f,0.0f); 13 }
2、通过GameObject.Find可以获取实例引用:
1 //获取游戏对象 2 objCube = GameObject.Find("Cube"); 3 objSphere = GameObject.Find("Object/Sphere");
3、通过GameObject.FindWithTag()可以获取标签对象,此方法只能获取第一个添加了些标签的对象。
4、FindGameObjectsWithTag()可以获取某一标签下的所有对象。对象标签可以动态修改:
1 //得到包含MyTag标签的游戏对象数组 2 var objs = GameObject.FindGameObjectsWithTag ("MyTag"); 3 //将5号元素的标签修名称修改为TestTag 4 objs[5].tag = "TestTag";
5、发送消息
6、代码中使用Instantiate()方法克隆游戏对象。
1 //克隆一个obj的实例 2 var clone :GameObject = Instantiate(obj, obj.transform.position, obj.transform.rotation); 3 //5秒后销毁该实例, 4 Destroy (clone, 5);
7、添加/删除脚本组件。
1 if(GUILayout.Button("给立方体添加脚本组件",GUILayout.Height(50))){ 2 //添加cube_script脚本 3 if(obj) 4 obj.AddComponent("cube_script"); 5 } 6 7 if(GUILayout.Button("删除立方体脚本组件",GUILayout.Height(50))){ 8 //删除cube_script脚本 9 if(obj) 10 Destroy (obj.GetComponent ("cube_script")); 11 }
8、模型的旋转。
9、C#代码中类名必须与文件名一致,否则编译错误。
10、使用Time类:
1 void OnGUI() 2 { 3 GUILayout.Label("当前游戏时间:" + Time.time); 4 GUILayout.Label("上一帧所消耗的时间:" + Time.deltaTime); 5 GUILayout.Label("固定增量时间:" + Time.fixedTime); 6 GUILayout.Label("上一帧所消耗固定时间:" + Time.fixedDeltaTime); 7 }
11、获取随机数:
1 int a = Random.Range(0,100); 2 float b = Random.Range(0.0f,10.0f); 3 4 Debug.Log("获取一个0-100之间的整形随机数" + a); 5 Debug.Log("获取一个0.0f-10.0f之间的浮点型随机数" + b);