U3d学习-使用Unity3D开发2D游戏(上)

欢迎来到unity学习unity培训unity企业培训教育专区,这里有很多U3D资源U3D培训视频U3D教程U3D常见问题U3D项目源码,【狗刨学习网】unity极致学院,致力于打造业内unity3d培训、学习第一品牌。

  1.创建一个Unity3D项目

  2.将Camera设置为正交投影

  游戏的输出画面是通过摄像机所观察的场景来实现的,将场景呈现到2D的计算机屏幕上具有两种不同的投影方式:透视投影和正交投影,默认状态下是透视投影.

  透视投影

  

  正交投影

  

  3.添加相关对象模型

  移动摄像机物体,灯光到如下效果

  

  添加游戏物体移动超出边框的控制

  using UnityEngine;

  using System.Collections;

  public class Player:MonoBehaviour {

  public float playerSpeed;

  // Use this for initialization

  void Start () {

  }

  // Update is called once per frame

  void Update () {

  float amtToMove = Input.GetAxis("Horizontal")*Time.deltaTime*playerSpeed;

  gameObject.transform.Translate(Vector3.right*amtToMove);

  if(transform.position.x-7.5){

  //如果方块移动超出游戏窗体右边,方框将从左边窗口进入

  transform.position = new Vector3(5.25f,transform.position.y,transform.position.z);

  }

  if(transform.position.x5.25){

  //如果方块移动超出游戏窗体右边,方框将从左边窗口进入

  transform.position = new Vector3(-7.5f,transform.position.y,transform.position.z);

  }

  }

  }

  4.创建炮弹[create-Capsule]

  

  根据需要调整炮弹的大小

  选择炮弹模型,单机Component菜单,选择Physics-RigidBody,将炮弹设置为刚体,以便后面实现碰撞检测.

  为炮弹添加移动操作脚本

  using UnityEngine;

  using System.Collections;

  public class bulletTile : MonoBehaviour {

  public float bulletSpeed ;

  private Transform mytransform;

  // Use this for initialization

  void Start () {

  mytransform = gameObject.transform;

  }

  // Update is called once per frame

  void Update () {

  //定义炮弹移动速度

  float amtToMove = bulletSpeed * Time.deltaTime;

  //让炮弹垂直向上移动

  mytransform.Translate(Vector3.up * amtToMove);

  //如果炮弹移动超出游戏场景则销毁炮弹

  if(mytransform.position.y5.15){

  Destroy(this.gameObject);    //销毁当前对象

  }

  }

  }

  对象重用

  在Project中创建一个Prefab对象,然后将要重用的对象模型拖动到该Prefab对象上,即可实现模型对象的重用.

  发射子弹的实现

  在Player脚本中创建Prefab可重用对象实例

  using UnityEngine;

  using System.Collections;

  public class Player:MonoBehaviour {

  public float playerSpeed;

  public GameObject bulletPrefab;

  // Use this for initialization

  void Start () {

  }

  // Update is called once per frame

  void Update () {

  float amtToMove = Input.GetAxis("Horizontal")*Time.deltaTime*playerSpeed;

  gameObject.transform.Translate(Vector3.right*amtToMove);

  if(transform.position.x-7.5){

  //如果方块移动超出游戏窗体右边,方框将从左边窗口进入

  transform.position = new Vector3(5.25f,transform.position.y,transform.position.z);

  }

  if(transform.position.x5.25){

  //如果方块移动超出游戏窗体右边,方框将从左边窗口进入

  transform.position = new Vector3(-7.5f,transform.position.y,transform.position.z);

  }

  //获取发射器位置 发射器的正上方

  Vector3 position = new Vector3(transform.position.x,transform.position.y+transform.localScale.y/2.0f,transform.position.z);

  //按下空格键发射子弹

  if(Input.GetKeyDown("space")){

  //实例化一个炮弹对象

  Instantiate(bulletPrefab,position,Quaternion.identity);

  }

  }

  }

  

  拖动表示将属性实例化,因为我们脚本中定义的是public属性,在这里我们可以手动为public属性赋值,此时运行程序,用左右键控制发射器的移动,用space发射子弹.

  

  应用实例:

  游戏中声音的添加与控制

  支持的声音文件:*.aiff,*.wav,*.mp3,*.ogg

  .AIFF

  转换为无压缩音频导入,最适合短音效果。可以在编辑器中按需求压缩。

  .WAV

  转换为无压缩音频导入,最适合短音效果。可以在编辑器中按需求压缩

  .MP3

  转换成Ogg格式导入,最适合较长的音乐曲目。

  .OGG

  压缩音频格式(与iPhone设备和某些Android设备不兼容),最适合较长的音乐曲目。

  添加声音控制按钮,

  void OnGUI(){

  GUI.Button (new Rect (10,10,100,35), "播放音乐");

  GUI.Button (new Rect (10,60,100,35), "暂停播放");

  GUI.Button (new Rect (10,110,100,35), "停止音乐");

  }

  

  为按钮添加事件

  void OnGUI(){

  if(GUI.Button (new Rect (10,10,100,35), "播放音乐")){

  gameObject.audio.Play();

  }

  if(GUI.Button (new Rect (10,60,100,35), "暂停播放")){

  gameObject.audio.Pause().

  }

  if(GUI.Button (new Rect (10,110,100,35), "停止音乐")){

  gameObject.audio.Stop();

  }

  }

  5.为发射炮弹添加声音

  选中bulletPrefab,单机窗体中的Component-Audio-AudionSource

  

  

更多内容,请访问【狗刨学习网】unity极致学院
http://edu.gopedu.com

     声明:此篇文档时来自于【狗刨学习网】社区-unity极致学院,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。

时间: 2024-11-05 21:53:55

U3d学习-使用Unity3D开发2D游戏(上)的相关文章

UWP简单示例(三):快速开发2D游戏引擎

准备 IDE:VisualStudio 2015 Language:VB.NET/C# 图形API:Win2D MSDN教程:UWP游戏开发 写在前面的话 没有什么比重复造轮子更让人心碎的事情了. (如果有,那就是造了两遍) 是否有必要开发游戏引擎? 现在市面上有很多成熟的跨平台游戏引擎,对个人开发者也较为友好 若你是一名C#开发者,可以选择CocosSharp或Unity3D 尤其Unity3D,用它开发2D和3D游戏一样出色 当然,亲自编写一款简单的2D游戏引擎也是一件让人自信感满满的事情

浅析:Unity3D开发的游戏如何降低包体大小

众所周知,通过Unity3D开发的手游包体普遍偏大,动则几百M的安装包,而包体大则会导致手游推广的成本增大,也会影响到用户转化率.除去其他因素,用户在选择下载时,会着重关注游戏包体大小,游戏包体体积过大,下载时间长,会让用户取消下载,同时也会考虑到流量的问题. 因此Unity官方也介绍了几种降低包体大小的方法: 1.替换jpg,使用psd,减少重复资源 2.剔除不必要的资源 3.打包时查看log纪录,由此判断需要减少的文件类型 4.优化,压缩图片,减少图片大小 5.优化,压缩网格和动画,减少文件

Android下重启Unity3d开发的游戏

前面项目中遇到一个问题,就是游戏更新完成之后重启游戏,按理说这个在android下面很简单没什么难度,可是自己对android不太熟悉,然后unity3d这里又有个坑,所以写这篇博客记录下来,希望能帮助到其它需要的人 首先在android下面我们一般会选择重启Activity,但是U3D的不unityplayeractivity 只要调用finish就会调用到他的退出消息,导致进程直接被关掉,从而无法重启,所以我后面加了一个闹钟解决了这个问题,也许对于android熟悉的人来说这个真不算什么问题

学习经验谈 Unity3d开发中最佳语言还是C

作为学unity3d的新人,开始学它之前就知道unity3d支持C#和JS等等,但在选择用什么语言上我查阅了很多文件,当这个月我用上了unity3d 3.0版时,我发现unity3d 对MONO framework的支持与选择,说明了unity3d 的战略意图: 1:首先unity3d 选择C#,是因为微软这棵大树下有巨量的程序员,并且C#在网络开发方面成绩很优秀 2:为什么在选择Mono这个基于C#的开源框架,Mono是一个由Novell公司(先前是Ximian)主持的项目,众所周知,C#是M

Unity3D之2D游戏的背景补偿效果

public class BackgroundParallax : MonoBehaviour { public Transform[] backgrounds; //背景物体 public float parallaxScale;  //摄像机移动偏移值的缩放系数 public float parallaxReductionFactor;//背景每一层补偿的系数 public float smoothing; //背景物体移动的平滑量 private Transform cam;//摄像机 p

Unity 2D游戏开发快速入门第1章创建一个简单的2D游戏

Unity 2D游戏开发快速入门第1章创建一个简单的2D游戏 即使是现在,很多初学游戏开发的同学,在谈到Unity的时候,依然会认为Unity只能用于制作3D游戏的.实际上,Unity在2013年发布4.3版本的时候,就开始提供对制作2D游戏的支持了.例如,提供了一些专用于开发2D游戏的Unity工具.现在Unity已经发布了版本4.5,对2D游戏的支持更是完善了不少.为了说明Unity对2D游戏所提供的支持,本章会使用这些在Unity中原生的工具,开发一个简单的2D游戏.本文选自<Unity

Unity3d的2D骨骼动画插件Puppet2D的使用1

大家好,我是孙广东.   转载请注明出处:http://blog.csdn.net/u010019717 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guide&view=my 开发Cocos2d的程序员都知道,Cocostudio其中一个动画编辑组件中的.骨骼动画对于游戏开发的性能上是很好的,有些时候和序列帧动画相比. 强大的unity3d虽然也可以开发2D游戏,可以序列帧实现动画. 还是没有2d的骨骼动画编辑功能. 最近开

认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程

认识AndEngine什么是AndEngine 随着Android手机.平板的盛行,Android下的游戏也不断的变得火热.而对于游戏开发有兴趣的同学们,应该也想要学习开发游戏.虽说游戏开发的引擎较多,但是大多数都需要花费一些资金才可以正式使用.而我们这里要讲解的AndEngine则是一个免费并且开源的2D游戏引擎.对于它的使用,读者不仅不必担心授权问题,而且还可以获得AndEngine源码,在需要的时候对其进行修改.本章就来讲解如何在自己的计算机上搭建一个自己AndEngine开发平台.本文选

Android 2D游戏引擎AndEngine快速入门教程

Android 2D游戏引擎AndEngine快速入门教程 介绍:AndEngine是一款知名的Android 2D游戏引擎.该引擎代码开源,并且可以免费使用.本书详细讲解如何使用AndEngine引擎开发2D游戏. 试读下载地址:http://pan.baidu.com/s/1c0CODiw 前言 作为一款免费的手机操作系统,Android系统占据大半的手机系统份额.在Android众多的应用类型中,游戏应用由其娱乐性成为最大的分支.由于手机的操控特点,2D游戏成为Android游戏的主流,如