U3d学习
2013-06-10 11:41
155 查看
1.创建一个Unity3D项目 2.将Camera设置为正交投影 游戏的输出画面是通过摄像机所观察的场景来实现的,将场景呈现到2D的计算机屏幕上具有两种不同的投影方式:透视投影和正交投影,默认状态下是透视投影. 透视投影
正交投影
3.添加相关对象模型 移动摄像机 物体,灯光到 如下效果
添加游戏物体移动超出边框的控制
根据需要调整炮弹的大小 选择炮弹模型,单机Component菜单,选择Physics-RigidBody,将炮弹设置为刚体,以便后面实现碰撞检测. 为炮弹添加移动操作脚本
发射子弹的实现 在Player脚本中创建Prefab可重用对象实例
拖动表示将属性实例化,因为我们脚本中定义的是public属性,在这里我们可以手动为public属性赋值,此时运行程序,用左右键控制发射器的移动,用space发射子弹.
应用实例: 游戏中声音的添加与控制 支持的声音文件: *.aiff, *.wav, *.mp3, *.ogg
为按钮添加事件
正交投影
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.x>5.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.y>5.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.x>5.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 转换为无压缩音频导入,最适合短音效果。可以在编辑器中按需求压缩。 .W*** 转换为无压缩音频导入,最适合短音效果。可以在编辑器中按需求压缩 .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-Audion Source
相关文章推荐
- 学习u3d中的专业名词
- U3d学习第二天--区域风和绘制公路
- 跟我从零基础学习Unity3D开发--初识U3D
- 学习U3d官方项目——Roll-A-Ball
- 我的OJ重修之路。。。。加油!为了学习U3D!计算Sn(0040)
- U3d学习第一天---界面布局更改及基本操作
- U3d学习第二天--创建树和预设体、三种灯光属性及添加耀斑、音频的简单应用
- U3D之学习异步加载-1204
- U3D学习网址
- MMORPG游戏u3d客户端框架学习_1
- u3d 自带GUI学习之 GUILayout
- u3d学习:helloworld
- u3d零基础学习之2d游戏学习笔记
- u3d脚本学习三,学习的资源整理
- u3d学习第一天--材质球和钢体
- U3D第二天学习心得
- u3d 学习笔记
- u3d学习资料
- KING_U3D学习之Unity播放视频解决方案
- 【U3D学习】塔防游戏02