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);}}}
相关文章推荐
- Unity学习之基础脚本代码抽象类和继承总结
- Unity脚本-Rotate旋转相关知识总结
- Unity中性能优化的一些经验与总结(脚本优化篇)
- Unity入门(3)常用函数总结(移动/脚本间变量传值/ui text中显示变量
- Unity 脚本学习总结
- Unity脚本-移动相关知识总结
- 【技术】【总结】Unity:理解Gameobject ,gameObject,Transform,transform的区别和关联
- unity脚本执行顺序详解
- Shell脚本8种字符串截取方法总结
- js脚本加载总结
- Unity中同一个物体上加载的脚本的执行顺序以及点击Button时触发事件的顺序
- Unity中的脚本生命周期图
- Shell脚本8种字符串截取方法总结
- Unity-Animator深入系列---StateMachineBehaviour状态机脚本学习
- 【经验总结】如何提高统计监控脚本的效率
- 脚本页面js脚本加载总结
- linux脚本总结
- Unity基础|Unity脚本创建与执行
- Unity 3D 脚本参考
- [Unity3D学习]Unity代码热更新解决方案测试结果总结