Unity3D之太空大战一
这是一个简单的太空大战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之太空大战一相关推荐
- Unity3D游戏作品大盘点
* 原文链接: http://www.unitymanual.com/404.html 经典重现<新仙剑OL> <新仙剑OL>采用跨平台Unity3D引擎,耗资数千万,历时三年 ...
- Unity3D引擎各大插件免费下载地址
Unity3D引擎作为当前最主流的3D游戏引擎之一,拥有大量第三方插件和工具.以下为各大Unity3D引擎各大插件免费下载地址,还有一些热门插件例如:Playmaker . UnIDE .Tile B ...
- 基于Unity3D引擎制作大地图
2.制做一张灰度图: 需求:Photoshop GIMP 先Google 搜 WorldMap-A_non-Frame.png 这个地图下载一张到你pc 然后gimp打开它, ...
- Unity3D案例太空射击(Space Shooter)流程介绍与代码分析(上)
最近开始接触游戏制作,用Unity制作一些简单的游戏进行入门.这几篇博客总结了Space Shooter的制作流程,并对代码进行了分析.一是方便自己日后进行回顾与补充,二是为了让让更多的游戏爱好者接触 ...
- Unity3D案例太空射击(Space Shooter)流程介绍与代码分析(下)
这部分内容关注的是游戏性的提升,包括音效.计分等功能的实现. 传送门: 太空射击(Space Shooter)流程介绍与代码分析(上) 太空射击(Space Shooter)流程介绍与代码分析(中) ...
- Unity3D《太空战机》如何给战机加上防护罩
几乎任何一款太空射击类游戏都会为玩家战机提供防护罩(shield)的功能,防护罩开启时,玩家几乎处于"无敌"状态,但是防护罩通常有一定的时间限制,而且使用次数有限. 那么使用 ...
- unity3d android 回调,大神们,请问unity和Android交互的时候,为什么总是调用不到方法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package="com.vcgame.xxdq.miKu" android:versionCode="1" an ...
- java程序之飞机大战_java写飞机大战一
从前看马士兵老师的教程,学过一个坦克大战,不过当时一头雾水,一直想着模仿着写一个飞机大战,放假了终于动手写了,虽然AWT似乎已经不推荐用了,但是懒得研究swing啊,作为javase的练习还是可以的. ...
- Unity3D之太空大战二
接下来,我们要使飞船能发射子弹,所以我们要创建子弹模型,在资源中找到rocket.fbx模型文件,拖到Hierarchy中,这样就创建了子弹的游戏体,当然对于重复使用的游戏体,我们要做成预设体Pref ...
- 每周全球科技十大新闻(2021.6.21-6.27)
NEWS (2021.6.21-6.27) 新闻摘要: 1)突发"删库跑路",企业应当如何对待? 2)有人花掉2800万美元买了一张杰夫·贝佐斯旗下的太空游船票 3)腾讯云与神州信 ...
最新文章
- 【Android 电量优化】JobScheduler 源码分析 ( JobServiceContext 源码分析 | 闭环操作总结 | 用户提交任务 | 广播接收者接受相关广播触发任务执行 )★
- php遍历文件夹下文件内容_php遍历文件夹下所有文件的代码示例
- protobuf windows java_protobuf windows java 环境搭建
- Spring框架第二天知识总结
- 在Oracle Linux 7上通过官方Repo在线安装SQL Server 2017
- 知乎上已获千赞,全网独家首发!
- leetcode83,删除有序链表中的重复元素
- (二分+区间搜索 )Mountain Walking(poj2110/poj2922)
- 数据分析学习笔记—文件处理与pdf处理
- iOS开发之应用内检测手机锁屏,解锁状态
- iOS开发之openURL:(打电话,打开网页等)
- 无线传感器网络与数据交换解析
- CAD导出.eps格式图
- DM860步进电机接线及拨码
- 你利用好网络这个工具了吗?
- 51c语言延时作用,51单片机C语言延时函数的使用 - 51单片机C语言延时函数怎么定义和使用...
- 从Jdk8到Jdk12的Java虚拟机垃圾回收(垃圾收集)相关论文和官方网站集锦
- 乒乓球基本站姿站位和步伐
- allergro音乐术语什么意思_常见音乐术语(速度术语)
- WORD/WPS打印目录或输出输出PDF时,目录显示“错误未定义标签”,且无法正常跳转的解决方法