unity3d 射弹基础案例代码分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d 射弹基础案例代码分析相关的知识,希望对你有一定的参考价值。
1 #pragma strict 2 import UnityEngine.UI; 3 4 function Start () { 5 6 } 7 var speed : int = 5; 8 var newobject : Transform; 9 var sdshu : int = 0; 10 var xmshu : int = 0; 11 12 13 function Update () { 14 //yidong 15 var x : float = Input.GetAxis("Horizontal")*Time.deltaTime*speed; 16 var z : float = Input.GetAxis("Vertical")*Time.deltaTime*speed; 17 if (Input.GetKey(KeyCode.H)){ 18 transform.Translate(0,5*Time.deltaTime,0); 19 } 20 if (Input.GetKey(KeyCode.N)){ 21 transform.Translate(0,-5*Time.deltaTime,0); 22 } 23 transform.Translate(x,0,z); 24 //print (x); 25 //kaihuo 26 if (Input.GetButtonDown("Fire1")){ 27 var n : Transform = Instantiate(newobject,transform.position,transform.rotation); 28 var fwd : Vector3 = transform.TransformDirection(Vector3.forward); 29 n.GetComponent(Rigidbody).AddForce(fwd*3000); 30 sdshu++; 31 gameObject.Find("Canvas/wenzi").GetComponent(Text).text="射弹数:" +sdshu+ " 消灭数:" + xmshu; 32 33 } 34 //xuanzhuan 35 if (Input.GetKey(KeyCode.Q)){ 36 transform.Rotate(0,-25*Time.deltaTime,0,Space.Self); 37 } 38 if(Input.GetKey(KeyCode.E)){ 39 transform.Rotate(0,25*Time.deltaTime,0,Space.Self); 40 } 41 if (Input.GetKey(KeyCode.Z)){ 42 transform.Rotate(-25*Time.deltaTime,0,0,Space.Self); 43 } 44 if (Input.GetKey(KeyCode.C)){ 45 transform.Rotate(25*Time.deltaTime,0,0,Space.Self); 46 } 47 48 }
这是射击脚本。
1 function Start () { 2 3 } 4 var sd : int; 5 var xm : int; 6 function Update () { 7 if(gameObject.transform.position.y<0){ 8 xm = gameObject.Find("Camera").GetComponent(sheji).xmshu++; 9 sd = gameObject.Find("Camera").GetComponent(sheji).sdshu; 10 gameObject.Find("Canvas/wenzi").GetComponent(Text).text="射弹数:" +sd+ " 消灭数:" + xm; 11 if (xm > 20){ 12 gameObject.Find("Canvas/wenzi").GetComponent(Text).text="恭喜过关!"; 13 gameObject.Find("Camera").GetComponent(sheji).enabled=false; 14 gameObject.Find("dimian").GetComponent(restar).enabled=true; 15 } 16 Destroy(gameObject); 17 } 18 19 }
这是检查脚本。
1 #pragma strict 2 @script RequireComponent(Audiosource) 3 import UnityEngine.SceneManagement ; 4 5 function OnGUI(){ 6 var audio: AudioSource = GetComponent.<AudioSource>(); 7 if(GUI.Button(Rect(180,100,60,30),"退 出")){ 8 Application.Quit(); 9 } 10 if(GUI.Button(Rect(280,100,60,30),"重新开始")){ 11 SceneManager.LoadScene(SceneManager.GetActiveScene().name); 12 } 13 if(GUI.Button(Rect(10,160,100,50),"paly")) 14 audio.Play(); 15 if(GUI.Button(Rect(10,220,100,50),"Pause")) 16 audio.Pause(); 17 if(GUI.Button(Rect(10,280,100,50),"Stop")) 18 audio.Stop(); 19 }
这是重启脚本,
var audio: AudioSource = GetComponent.<AudioSource>();可以不设置变量audio, GetComponent.<AudioSource>().Pause();这样使用。
1 #pragma strict 2 import UnityEngine.UI; 3 4 function OnCollisionEnter(){ 5 gameObject.Find("Canvas/wenzi").GetComponent(Text).text = "大玉螺旋丸!"; 6 gameObject.Find("Point light").GetComponent(Light).enabled = false; 7 gameObject.Find("Spotlight").GetComponent(Light).enabled = false; 8 Destroy(gameObject); 9 }
这是碰撞检测脚本。
1 #pragma strict 2 3 function OnGUI(){ 4 if(GUI.Button(Rect(180,400,60,30),"开始游戏")){ 5 Application.Quit(); 6 } 7 }
这里说明下按钮的使用代码。SceneManager.LoadScene(SceneManager.GetActiveScene().name);可以在loadScene实参直接使用“场景名字“。
以上是关于unity3d 射弹基础案例代码分析的主要内容,如果未能解决你的问题,请参考以下文章
详细实例说明+典型案例实现 对动态规划法进行全面分析 | C++
unity3d study ---- 麦子学院---------- unity3d常用组件及分析 ---------- 代码控制音频视频