您的位置:首页 > 移动开发 > Unity3D

unity脚本小总结

2013-09-02 21:30 381 查看
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") //按下退出Esc
Input.GetKeyDown("1") //按下数字键
Input.GetKeyDown(KeyCode.X) //按下字母键
点击时使物体消失gameObject.renderer.enabled  =false;
//是控制一个物体是否在屏幕上渲染或显示  而物体实际还是存在的 只是想当于隐身 而物体本身的碰撞体还依然存在的
或者定义gameobject gam1;类型,然后gam1.active = false;(javascript),与下面代码是等价的,写法不同而已
gam1.setactive(false); (c#)
3.对于判断角色与多个物体之间的距离来弹出不同的窗口消息
查看下列实例
#pragma strictvar 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);}}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: