欢迎来到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.f,transform.position.y,transform.position.z); } if(transform.position.x5.){ //如果方块移动超出游戏窗体右边,方框将从左边窗口进入 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.){ 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.f,transform.position.y,transform.position.z); } if(transform.position.x5.){ //如果方块移动超出游戏窗体右边,方框将从左边窗口进入 transform.position = new Vector3(-7.5f,transform.position.y,transform.position.z); } //获取发射器位置 发射器的正上方 Vector3 position = new Vector3(transform.position.x,transform.position.ytransform.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 (,,,), "播放音乐"); GUI.Button (new Rect (,,,), "暂停播放"); GUI.Button (new Rect (,,,), "停止音乐"); } 为按钮添加事件 void OnGUI(){ if(GUI.Button (new Rect (,,,), "播放音乐")){ gameObject.audio.Play(); } if(GUI.Button (new Rect (,,,), "暂停播放")){ gameObject.audio.Pause(). } if(GUI.Button (new Rect (,,,), "停止音乐")){ gameObject.audio.Stop(); } } 5.为发射炮弹添加声音 选中bulletPrefab,单机窗体中的Component-Audio-AudionSource 更多内容,请访问【狗刨学习网】unity极致学院 声明:此篇文档时来自于【狗刨学习网】社区-unity极致学院,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。
推荐整理分享U3d学习-使用Unity3D开发2D游戏(上)(unity udim),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:u3d unity3d,unity 3d教程,u3d unity3d,unity3d怎么用,unity 3d教程,unity 3d ui,unity 3d ui,unity 3d ui,内容如对您有帮助,希望把文章链接给更多的朋友!
Unity3D移动平台动态读取外部文件全解析 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学
使用 Sublime Text 2 开发 Unity3D 项目 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学
使用unity3d需要注意到细节 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学