我是靠谱客的博主 酷炫外套,这篇文章主要介绍Unity3D之太空大战一,现在分享给大家,希望可以做个参考。

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

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



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



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



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




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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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"); } } }

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



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



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



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




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



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




运行,我们看下效果图:



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



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



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



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


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



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





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




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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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之太空大战一的全部内容,更多相关Unity3D之太空大战一内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部