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

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

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

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

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

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

using UnityEngine;
using System.Collections;[AddComponentMenu("MyGame/TitleScreen")]public class TitleScreen : MonoBehaviour {// Use this for initializationvoid Start () {}// Update is called once per framevoid 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,代码如下:

public class Player : MonoBehaviour {public float m_speed=1;protected Transform m_transform;void Start () {m_transform=this.transform;}// Update is called once per framevoid 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之太空大战一相关推荐

  1. Unity3D游戏作品大盘点

    * 原文链接: http://www.unitymanual.com/404.html 经典重现<新仙剑OL> <新仙剑OL>采用跨平台Unity3D引擎,耗资数千万,历时三年 ...

  2. Unity3D引擎各大插件免费下载地址

    Unity3D引擎作为当前最主流的3D游戏引擎之一,拥有大量第三方插件和工具.以下为各大Unity3D引擎各大插件免费下载地址,还有一些热门插件例如:Playmaker . UnIDE .Tile B ...

  3. 基于Unity3D引擎制作大地图

    2.制做一张灰度图: 需求:Photoshop            GIMP 先Google 搜 WorldMap-A_non-Frame.png  这个地图下载一张到你pc 然后gimp打开它,  ...

  4. Unity3D案例太空射击(Space Shooter)流程介绍与代码分析(上)

    最近开始接触游戏制作,用Unity制作一些简单的游戏进行入门.这几篇博客总结了Space Shooter的制作流程,并对代码进行了分析.一是方便自己日后进行回顾与补充,二是为了让让更多的游戏爱好者接触 ...

  5. Unity3D案例太空射击(Space Shooter)流程介绍与代码分析(下)

    这部分内容关注的是游戏性的提升,包括音效.计分等功能的实现. 传送门: 太空射击(Space Shooter)流程介绍与代码分析(上) 太空射击(Space Shooter)流程介绍与代码分析(中) ...

  6. Unity3D《太空战机》如何给战机加上防护罩

     几乎任何一款太空射击类游戏都会为玩家战机提供防护罩(shield)的功能,防护罩开启时,玩家几乎处于"无敌"状态,但是防护罩通常有一定的时间限制,而且使用次数有限. 那么使用 ...

  7. unity3d android 回调,大神们,请问unity和Android交互的时候,为什么总是调用不到方法...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package="com.vcgame.xxdq.miKu" android:versionCode="1" an ...

  8. java程序之飞机大战_java写飞机大战一

    从前看马士兵老师的教程,学过一个坦克大战,不过当时一头雾水,一直想着模仿着写一个飞机大战,放假了终于动手写了,虽然AWT似乎已经不推荐用了,但是懒得研究swing啊,作为javase的练习还是可以的. ...

  9. Unity3D之太空大战二

    接下来,我们要使飞船能发射子弹,所以我们要创建子弹模型,在资源中找到rocket.fbx模型文件,拖到Hierarchy中,这样就创建了子弹的游戏体,当然对于重复使用的游戏体,我们要做成预设体Pref ...

  10. 每周全球科技十大新闻(2021.6.21-6.27)

    NEWS (2021.6.21-6.27) 新闻摘要: 1)突发"删库跑路",企业应当如何对待? 2)有人花掉2800万美元买了一张杰夫·贝佐斯旗下的太空游船票 3)腾讯云与神州信 ...

最新文章

  1. 【Android 电量优化】JobScheduler 源码分析 ( JobServiceContext 源码分析 | 闭环操作总结 | 用户提交任务 | 广播接收者接受相关广播触发任务执行 )★
  2. php遍历文件夹下文件内容_php遍历文件夹下所有文件的代码示例
  3. protobuf windows java_protobuf windows java 环境搭建
  4. Spring框架第二天知识总结
  5. 在Oracle Linux 7上通过官方Repo在线安装SQL Server 2017
  6. 知乎上已获千赞,全网独家首发!
  7. leetcode83,删除有序链表中的重复元素
  8. (二分+区间搜索 )Mountain Walking(poj2110/poj2922)
  9. 数据分析学习笔记—文件处理与pdf处理
  10. iOS开发之应用内检测手机锁屏,解锁状态
  11. iOS开发之openURL:(打电话,打开网页等)
  12. 无线传感器网络与数据交换解析
  13. CAD导出.eps格式图
  14. DM860步进电机接线及拨码
  15. 你利用好网络这个工具了吗?
  16. 51c语言延时作用,51单片机C语言延时函数的使用 - 51单片机C语言延时函数怎么定义和使用...
  17. 从Jdk8到Jdk12的Java虚拟机垃圾回收(垃圾收集)相关论文和官方网站集锦
  18. 乒乓球基本站姿站位和步伐
  19. allergro音乐术语什么意思_常见音乐术语(速度术语)
  20. WORD/WPS打印目录或输出输出PDF时,目录显示“错误未定义标签”,且无法正常跳转的解决方法

热门文章

  1. 清华EMBA课程系列思考之一 -- Techmark课程带给管理者的思考
  2. BigDecimal实现加减乘除
  3. java时间转换为标准时间
  4. matlab 飞机大战小游戏
  5. html倒计时免费代码,JS倒计时代码汇总
  6. 抽象代数 04.03 Sylow 子群
  7. 沟通书籍排行榜前十名 提高沟通能力的十大书籍推荐
  8. RocketMQ 延迟队列
  9. 算法杂谈 How are you? I‘m fine Thank you ,and you?
  10. 手机计算机里面的符号代表什么意思,计算器上的符号各代表什么意思?