Unity3D之太空大战一

这是一个简单的太空大战DEMO,整个游戏两个部分,开始游戏界面跟游戏主界面,敌人分为两种,一种是简单的敌人,只会去触碰主角,还有一种是复杂点的敌人,可以发射子弹,,OK,下面我们一步步来。

首页我们导入相关的资源,在Assets里单击弹出选择框,选择Import Package->Custom Package,如下图:

Unity3D之太空大战一_第1张图片


接下来,我们要创建一个开始游戏场景,点击菜单栏中的File->New Scene来创建一个新场景,我们命名为start,如下图:

Unity3D之太空大战一_第2张图片


开始场景很简单,它包含一个标题,一个开始游戏按钮,一张背景图,我们先点击菜单栏,GameObject->Create Other->GUI Texture,创建一个背景图,如下图:

Unity3D之太空大战一_第3张图片


我们命名为GameBg,并在Texture里选择mars.png为背景图,如下图:

Unity3D之太空大战一_第4张图片



OK,接下来,我们在代码里创建标题,按钮,我们创建一个CS脚本,命名为TitleScreen,代码如下图:

using UnityEngine;
using System.Collections;

[AddComponentMenu("MyGame/TitleScreen")]


public class TitleScreen : MonoBehaviour {


	// Use this for initialization
	void Start () 
	{
	
	

	}
	
	// Update is called once per frame
	void Update () {
	
	}




	void OnGUI()
	{

		GUI.skin.label.fontSize=80;

		GUI.skin.label.alignment=TextAnchor.LowerCenter;

		GUI.Label(new Rect(0,30*2,Screen.width,100),"太空大战");

	
	
		if(GUI.Button(new Rect(Screen.width*0.5f-100*2,Screen.height*0.6f,200*2,30*2),"开始游戏"))
		{

			//读取当前关卡
			Application.LoadLevel("Level1");
			
			
		}

	}


}

这样,我们就创建了一个标题,跟一个按钮,并且点击按钮的时候,我们会跳转到下一个场景,我们把脚本挂到摄像机上,效果如下图:

Unity3D之太空大战一_第5张图片


接下来我们创建第二个场景,步骤跟上面新建第一个场景一样,我们命名为Level1,我们新建一个Plane,作为火星的模型,如下图:

Unity3D之太空大战一_第6张图片


命名为XqPlane,然后我们新建一个材质,命名为Background,如下图:

Unity3D之太空大战一_第7张图片


选择mars.png作为贴图,将shader属性设置为Transparent->Cutout->Diffuse,来去掉星球四周的黑框,材质属性如下图:

Unity3D之太空大战一_第8张图片

Unity3D之太空大战一_第9张图片


然后我们为火星模型指定材质,如下图:

Unity3D之太空大战一_第10张图片


同样,我们创建一个星空的模型,跟前面创建星球一样,我们命名为XkPlane,材质属性,贴图,如下图:

Unity3D之太空大战一_第11张图片

Unity3D之太空大战一_第12张图片


运行,我们看下效果图:

Unity3D之太空大战一_第13张图片


现在星空是不动的,我们想让它上下移动,所以接下来,我们创建动画,我们点击菜单栏Window->Animation,打开动画选项,

Unity3D之太空大战一_第14张图片


然后在Animation选项里点击Add Curve创建一个新动画,并命名为XkAnimation,如下图:

Unity3D之太空大战一_第15张图片


然后我们点击Mesh Renderer->Material._Main Tex_ST选项,如下图:

Unity3D之太空大战一_第16张图片


然后我们在Material._Main Tex_ST.w里将值从0到-1,到30帧的时候,改为-1,并设置循环,如下图:

Unity3D之太空大战一_第17张图片

运行发现,星空背景在往下移动,接下来,我们调整摄像机位置,使其向下对准星球,然后我们创建一个点光源,来照亮星球,,如下图:

Unity3D之太空大战一_第18张图片


然后我们设置光源的位置,范围等属性,属性如下图:

Unity3D之太空大战一_第19张图片


Unity3D之太空大战一_第20张图片


接下来,我们就要创建主角啦。。。。我们的主角是一艘太空飞船,我们可以通过方向键来控制飞船移动,我们将Player.fbx直接拖到Hierarchy中,然后将Y轴坐标为0,并且旋转180°,使其头朝上,如下图:


Unity3D之太空大战一_第21张图片


然后我们创建一个cs脚本,命名为Player,代码如下:

public class Player : MonoBehaviour {


	public float m_speed=1;

	protected Transform m_transform;

	void Start () 
	{
	
		m_transform=this.transform;


	}

	// Update is called once per frame
	void Update () 
	{
//		//纵向移动距离
//		float movev=0;
//		//横向移动距离
//		float moveh=0;
//
//		//向上键
//		if(Input.GetKey(KeyCode.UpArrow))
//		{
//
//
//			movev-=m_speed*Time.deltaTime;
//
//
//		}
//		//向下键
//		if(Input.GetKey(KeyCode.DownArrow))
//		{
//
//
//			movev+=m_speed*Time.deltaTime;
//
//
//		}
//
//		if(Input.GetKey(KeyCode.LeftArrow))
//		{
//			
//			
//			moveh+=m_speed*Time.deltaTime;
//			
//			
//		}
//		if(Input.GetKey(KeyCode.RightArrow))
//		{
//			
//			
//			moveh-=m_speed*Time.deltaTime;
//			
//			
//		}


	//	this.m_transform.Translate(new Vector3(moveh,0,movev));

}

}
这样我们就可以移动飞船了,



±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±


你可能感兴趣的:(unity3d开发)