Unity基础小案例---射击小球

此项目有2个页面组成

第一个页面

Unity基础小案例---射击小球_第1张图片

1、看上图的退出、开始游戏,这2个按钮是Main Camera关联的Menu1脚本文件来实现的-参数(左、上、宽、高)

可以将Menu1脚本文件直接拖拽到Main Camera上,或者直接Add Component脚本文件

#pragma strict

function 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值可以随便填,没有影响

Unity基础小案例---射击小球_第2张图片

3、第一个页面的天空图片,如何为场景添加天空盒

在Assets-->Import Package-->SkyBoxes导入系统的天空盒子资源图片

在Edit-->Render Settings

Unity基础小案例---射击小球_第3张图片


第二个页面

Unity基础小案例---射击小球_第4张图片

Unity基础小案例---射击小球_第5张图片


先来看Project结构图片

Unity基础小案例---射击小球_第6张图片

先来看materials文件夹

Unity基础小案例---射击小球_第7张图片

prefabs---sedan添加xh销毁脚本--3秒销毁

#pragma strict

function Start () {
//gameObject代表依附的物体
		Destroy(gameObject,3.0);
}


Unity基础小案例---射击小球_第8张图片


prefabs---zhuankuai

Unity基础小案例---射击小球_第9张图片


jiancha--如果砖块被打到地面以下(gameObject.transform.position.y<0),就将主摄像机上的sheji脚本的消灭砖块数量+1,如果打击砖块数量>5,就提示过关,并且将sheji脚本enabled=false,不可以在发射子弹,并且启动restart脚本,弹出游戏提示框

#pragma strict
function 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 strict

function 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 strict
function 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脚本附上

Unity基础小案例---射击小球_第10张图片

意思为:

#pragma strict

function 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

Unity基础小案例---射击小球_第11张图片

cylinder

Unity基础小案例---射击小球_第12张图片


dimian--将音乐文件附上


Unity基础小案例---射击小球_第13张图片


sphere

Unity基础小案例---射击小球_第14张图片

wenzi

Unity基础小案例---射击小球_第15张图片


你可能感兴趣的:(Unity3d脚本)