1.使添加的游戏对象自动旋转
创建一个脚本,把这个脚本绑定到 这个cube上,然后在脚本的Update里写入: transform.localRotation *= Quaternion.Euler(0, 30 * Time.deltaTime, 0);
或者transform.Rotate(Vector3.forward * 10 *Time.deltaTime , Space.World); transform.Rotate (new Vector3 (0, 0, 1) * 10*Time.deltaTime); transform.Rotate(0, 0, 10*Time.deltaTime,Space.World);选择其中一个即可2.获得键盘按键反应(不同类型对应不同的写法,3下有实例)Input.GetKeyDown("escape") //按下退出EscInput.GetKeyDown("1") //按下数字键Input.GetKeyDown(KeyCode.X) //按下字母键点击时使物体消失gameObject.renderer.enabled =false;
//是控制一个物体是否在屏幕上渲染或显示 而物体实际还是存在的 只是想当于隐身 而物体本身的碰撞体还依然存在的
或者定义gameobject gam1;类型,然后gam1.active = false;(javascript),与下面代码是等价的,写法不同而已
gam1.setactive(false); (c#)
3.对于判断角色与多个物体之间的距离来弹出不同的窗口消息查看下列实例#pragma strict var cls1:boolean=false; var cls2:boolean=false; var cls3:boolean=false; var dis1:float; var dis2:float; var dis3:float; var jiaose:GameObject; var wenhao1:GameObject; //记得编辑器拖入 var wenhao2:GameObject; var wenhao3:GameObject; function Start () { } function Update () { //判断角色与问号的距离,放在update中实时判断 dis1=Vector3.Distance(jiaose.transform.position,wenhao1.transform.position); dis2=Vector3.Distance(jiaose.transform.position,wenhao2.transform.position); dis3=Vector3.Distance(jiaose.transform.position,wenhao3.transform.position); } function OnGUI() { //判断角色与问号1的距离,小于2.0弹出窗口 if(dis1<2.0) cls1=true; if(cls1) { GUI.Window(1,Rect(200,200,150,50),windowjj,"你好吗"); } //判断角色与问号2的距离,小于2.0弹出窗口 if(dis2<2.0) cls2=true; if(cls2) { GUI.Window(1,Rect(200,200,150,50),windowjj,"你是谁"); } if(dis3<2.0) cls3=true; if(cls3) { GUI.Window(1,Rect(200,200,150,50),windowjj,"向右转"); } } function windowjj() {if(cls1) { GUI.Label(Rect(20,20,150,30),"Esc键消失:我很好"); } if(cls2) { GUI.Label(Rect(20,20,150,30),"1键消失:我是戴维"); } if(cls3) { GUI.Label(Rect(20,20,150,30),"X键消失:好的"); } //按下Esc键,退出窗口 if(cls1&&Input.GetKeyDown("escape")) { cls1=false; } if(cls2&&Input.GetKeyDown("1")) { cls2=false; } if(cls3&&Input.GetKeyDown(KeyCode.X)) { cls3=false; } }4.也可以使用OntriggerEnter()函数作为触发事件,前提是编辑区的mesh render的istrigger 打钩,将脚本挂上即可,消失可用ontriggerExit()函数实现即可5.NGUI有专门的消息传递组件,通过添加Buttonmessage组件可以通过自己写函数,通过function name来调用不同的函数名,从而响应不同的名称。很好用,并且可以将所有的消息放在一个函数中,然后挂在空的游戏对象中6.gameObject.renderer.enabled= false;
yieldWaitForSeconds(1.5f);
gameObject.renderer.enabled= true;
通过这种方式实现物体的消失出现
7.
//换贴图,直接把这段代码加在要换贴图的模型上即可; var textures : Texture2D[]; //声明一个数组型的图片库; private var i : float = 0; //声明i为浮点数0; function Update () { if ("这里写上发生这个事件的条件") { i++ //切换图片 } renderer.material.mainTexture = textures[i]; }8playerpref作用很重要,可以永久存储9.鼠标拾取代码,点击物体可显示所点击物体名称function Update () { if (Input.GetMouseButton (0)) { var ray = Camera.main.ScreenPointToRay (Input.mousePosition); var hit : RaycastHit; if (Physics.Raycast (ray, hit)) { Debug.DrawLine (ray.origin, hit.point); print(hit.collider.gameObject.name); } } }