Unity基础小案例---射击小球
来源:互联网 发布:学安卓要先学c语言吗 编辑:程序博客网 时间:2024/04/29 00:45
此项目有2个页面组成
第一个页面
1、看上图的退出、开始游戏,这2个按钮是Main Camera关联的Menu1脚本文件来实现的-参数(左、上、宽、高)
可以将Menu1脚本文件直接拖拽到Main Camera上,或者直接Add Component脚本文件
#pragma strictfunction OnGUI(){if(GUI.Button(Rect(180,200,60,30),"退 出")){Application.Quit();}if(GUI.Button(Rect(280,200,60,30),"开始游戏")){Application.LoadLevel("01");}}
2、上图的案例、游戏说明是GUI Text--这里拿案例截图说明
这里主要说明下Position:以视图左下角为(0,0)右上角(0,0)为标记, 我测试z值可以随便填,没有影响
3、第一个页面的天空图片,如何为场景添加天空盒
在Assets-->Import Package-->SkyBoxes导入系统的天空盒子资源图片
在Edit-->Render Settings
第二个页面
先来看Project结构图片
先来看materials文件夹
prefabs---sedan添加xh销毁脚本--3秒销毁
#pragma strictfunction Start () {//gameObject代表依附的物体Destroy(gameObject,3.0);}
prefabs---zhuankuai
jiancha--如果砖块被打到地面以下(gameObject.transform.position.y<0),就将主摄像机上的sheji脚本的消灭砖块数量+1,如果打击砖块数量>5,就提示过关,并且将sheji脚本enabled=false,不可以在发射子弹,并且启动restart脚本,弹出游戏提示框
#pragma strictfunction Start () {}//var sd:int;var xm:int;function Update () {if(gameObject.transform.position.y<0){//射击脚本的公有变量(xmshu)自身加1实现消灭计数;xm=gameObject.Find("Main Camera").GetComponent(sheji).xmshu++;//sd=gameObject.Find("Main Camera").GetComponent(sheji).sdshu;//gameObject.Find("wenzi").GetComponent(GUIText).text="射弹数:" +sd+" 消灭数:"+xm;if(xm > 5 ){gameObject.Find("wenzi").GetComponent(GUIText).text = "恭喜过关!继续努力!坚持学下去!";gameObject.Find("Main Camera").GetComponent(sheji).enabled=false ;gameObject.Find("dimian").GetComponent(restart).enabled=true ;} Destroy(gameObject);}}
restart
#pragma strictfunction OnGUI(){if(GUI.Button(Rect(180,100,60,30),"退 出")){Application.Quit();}if(GUI.Button(Rect(280,100,60,30),"重新开始")){Application.LoadLevel("01");}if (GUI.Button( Rect(10, 160, 100, 50), "Play")) audio.Play(); if (GUI.Button( Rect(10, 220, 100, 50), "Pause")) audio.Pause(); if (GUI.Button( Rect(10, 280, 100, 50), "Stop")) audio.Stop(); }
jiancha
#pragma strictfunction Start () {}//var sd:int;var xm:int;function Update () {if(gameObject.transform.position.y<0){//射击脚本的公有变量(xmshu)自身加1实现消灭计数;xm=gameObject.Find("Main Camera").GetComponent(sheji).xmshu++;//sd=gameObject.Find("Main Camera").GetComponent(sheji).sdshu;//gameObject.Find("wenzi").GetComponent(GUIText).text="射弹数:" +sd+" 消灭数:"+xm;if(xm > 5 ){gameObject.Find("wenzi").GetComponent(GUIText).text = "恭喜过关!继续努力!坚持学下去!";gameObject.Find("Main Camera").GetComponent(sheji).enabled=false ;gameObject.Find("dimian").GetComponent(restart).enabled=true ;} Destroy(gameObject);}}
主相机---将sedan附上,还有将sheji脚本附上
意思为:
#pragma strictfunction Start () {}var speed : int = 5;var newobject:Transform;var sdshu:int = 0;var xmshu:int=0;function Update () {var x:float= Input.GetAxis("Horizontal")*Time.deltaTime*speed;var z:float = Input.GetAxis("Vertical")*Time.deltaTime*speed;transform.Translate(x,0,z);if(Input.GetButtonDown("Fire1")){//(要生成的物体sedan,生成的位置,生成物体的旋转角度)--newobject本例是主摄像机var n:Transform = Instantiate(newobject,transform.position,transform.rotation);//转换方向var fwd:Vector3 = transform.TransformDirection(Vector3.forward);//给物体加力n.rigidbody.AddForce(fwd*1500.0);sdshu++;//访问其他物体!!!!gameObject.Find("wenzi").GetComponent(GUIText).text="射弹数为:" +sdshu+" 消灭数为:"+xmshu;; }//监视键盘上按键(在Y轴方向旋转)if(Input.GetKey(KeyCode.Q)){//xyz轴transform.Rotate(0,-25*Time.deltaTime,0,Space.Self );}if(Input.GetKey(KeyCode.E)){transform.Rotate(0,25*Time.deltaTime,0,Space.Self );}if(Input.GetKey(KeyCode.Z)){transform.Rotate(-25*Time.deltaTime,0,0,Space.Self );}if(Input.GetKey(KeyCode.C)){transform.Rotate(25*Time.deltaTime,0,0,Space.Self );}if(Input.GetKey(KeyCode.H)){transform.Translate(0,5*Time.deltaTime,0);}if(Input.GetKey(KeyCode.N)){transform.Translate(0,-5*Time.deltaTime,0);}}
cube
cylinder
dimian--将音乐文件附上
sphere
wenzi
0 0
- Unity基础小案例---射击小球
- Unity基础小案例--跳动的小球、自定义第一人称控制器
- unity NetWorking小案例
- Java图形界面基础案例-飞行的小球
- HTML5实现射击移动小球
- Unity 射击例子
- 初识Unity 3D——飞盘射击案例(1)
- 初始Unity 3D——飞盘射击案例(2)
- 初试Unity 3D——飞盘射击案例(3)
- 案例-小球自由落体运动
- 反射基础(小案例)
- Unity 发射小球
- unity简单小球下落
- Unity 射击练习(1)
- Unity 射击练习(2)
- Unity 中子弹弓箭射击脚本
- Unity 简单实现子弹射击
- 碰撞的小球开源小案例
- linux shell批量压缩某个目录下图片大小
- MFC编程学习之改变对话框和控件及文本颜色
- 致自己
- Python笔记——基本控制流
- 《深入理解计算机系统》学习笔记--001
- Unity基础小案例---射击小球
- websphere下log4j不起作用的问题
- Java基础---多线程
- 启动android模拟器时.有时会报The connection to adb is down, and a severe error has occur
- Python笔记——数字及数学函数
- <Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_C
- UFT延长使用时间
- hive jdbc
- java架构师之路:JAVA程序员必看的15本书的电子版下载地址