提问向:方向盘模拟器器可以使用u3d么

Unity3D打包后iOS如何使用模拟器 - 简书
Unity3D打包后iOS如何使用模拟器
因为公司项目中的一些功能需要FaceBook APP送审,需要提供iOS的simulator Build,换句话说就是先在模拟器在跑公司的U3D项目,然后生成一个具体的包给FaceBook送审。(为什么一定要用模拟器,我也不是特别明白)因为Unity3D打包之后默认都是只能真机运行的,也没见过模拟器运行的选项。所以我网上找的资料所得,Unity3D打包的项目也是可以用模拟器运行的,只是需要改下配置。具体步骤如下:
1.打开你的Unity3D项目,点击菜单栏的file选项,然后进入Build Settings,点击Player Settings这时在右边的导航栏出现Player Settings的一系列配置,如图
找到最下面Other Settings下最下面一项SDK Verson,选择Simulator SDK.然后就可以开始打包了。2工作才做完一半,打包成功之后,打开你的Unity-iPhone.xcodeproj。此时工程的可运行图标变成这样子了
然后进行工程设置Build Settings,Architectures目录下,找到Support Platform,选择iOS,这时再看工程可运行图标就变成各个模拟器了,做到这里就大功告成了
此篇文章基于Unity version 5.3.6p6 与Xcode7.3。 在项目开发过程中,因为Unity3D打包之后默认都是只能用真机运行。其实Unity3D打包的项目也是可以用模拟器运行的,只是需要改下配置。 一、Unity3D打包后iOS如何使用模拟器 (如果真机...
前言:以前所有公司项目都在真机上开发测试。最近“ 公司穷”,开发测试人员一直在增加,测试机就几个,真机开发测试完全不够用,没办法,只能研究 Unity 打包的工程可以在模拟器上运行。 1、首先更改 Unity 打包时候的设置,以支持模拟器运行。步骤: Build Setti...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
《腾讯桌球:客户端总结》 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身。虽然基于Unity3D,很多东西同样适用于Cocos。本文从以下10大点进行阐述:架构设计、原生插件/平台交互、版本与补丁、用脚本,还是不用?这是一个问题、资源管理、性能优化、异常与Cras...
耶稣说,复活在我,生命也在我;信我的人,虽然死了,也必复活;凡活着信我的人,必永远不死。
上班依旧忙。 供应商资料终于在第三天完成了,整理强迫症此刻内心十分舒爽。 只是做了自己擅长的事情,却得到赞扬肯定,心里满足。确实再小再简单的事情,不同人做出的结果,差距不是一点半点。我不知道什么算好什么算不好,只能一点一点努力做到自己能想到的最好。 所有事,都是一样。 回到...
本来今天好好的,不知道弄到了什么,调试不了了,一点击立马卡住,就一直在那转,就在网上找了找解决方案,下面给大家列出来几种可能会卡住的问题已经解决方案1:加载调试符号引起的卡住解决方案:在“选项”“调试”“符号”里,“符号文件(.pdb)位置”下取消勾选Microsoft符号...
我梦到我们和好了,我凑上去亲了他一下。我们都笑的特别开心。基于U3D的航空发动机涡轮装配模拟器开发_论文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于U3D的航空发动机涡轮装配模拟器开发
中国最大最早的专业内容网站|
总评分0.0|
&&通过设计开发航空发动机涡轮装配模拟器,旨在改变传统教学实习的方式,改善实习条件和更新实习内容。文章系统地介绍了航空发动机涡轮装配模拟器的设计原理和组成,阐述了设计中的关键技术,并给出了模拟器的实现方案。模拟器采用CATIA和Acrobat 3D完成,发动机三维模型采用U3D格式,通过JavaScript实现了对U3D图形的控制。模拟器已经在本科教学中得到应用,实践表明该模拟器有很好的实
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢U3D发布的安卓APP为什么在模拟器里面运行是黑屏_百度知道
U3D发布的安卓APP为什么在模拟器里面运行是黑屏
我有更好的答案
你是指代码查看,还是eclipse编辑器查看,如果是eclipse编辑器的话如图示:
VpnVip资讯教程,软件使用平台。
操作系统/系统故障
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 3964|回复: 4
如何使用Unity制作2.5D游戏(一)
16排名1昨日变化主题帖子积分
蛮牛币270511
在线时间2250 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
2.5D游戏从根本上来说是3D游戏,但是经过开发者的处理后,游戏玩法只停留在轴上。
《超级玛丽兄弟Wii》、《小小大星球》和《Paper Monsters》都是绝妙的2.5D游戏。
制作2.5D游戏的绝妙方式是使用流行、简单和廉价的游戏开发工具Unity。
所以,在本系列教程中,我将向你展示如何使用Unity来制作简单的2.5D游戏《Shark Bomber!》。
如果你是个Unity新手,而且想要学习这种工具,那么本教程正适合你!你会学到如何从头开始制作出简单的游戏,并在此过程中学到许多东西。
在这款游戏中,你控制的是架小型但装备精良的飞机,你的目标是向邪恶的鲨鱼投炸弹,同时还要保护可爱的小丑鱼。
Unity不使用Objective-C,所以阅读此教程不需要任何Objective-C经验。但是,拥有OO语言经验会使学习更加顺畅,比如C#、Java或Actionscript。
要记住,这是个针对Mac用户的教程,Windows用户可能无法使用。而且还要记住,你只能在iOS设备上进行测试,所以要先确保拥有可使用的设备!
首先,让我们来安装Unity编辑器。如果你的Mac电脑上已经安装了这个工具,可以跳过这个步骤。
从下载页面处下载Unity。获得DMG文件后,打开Unity安装程序,经过标准安装过程后,你会在二进制数据存放点看到/Applications/Unity文件夹。
打开Unity,点击“注册”按钮。选择“连网激活”,点击“下一步”,填写网页上的表格。
重点:根据本教程需要,你需要选择“激活专业/iOS测试版”选项,这样你才能将游戏发布到iPhone上。
注册完成后,Unity就会开启如下窗口:
WelcomeToUnity2-500x305.jpg (42.41 KB, 下载次数: 1)
12:50 上传
关闭弹出窗口“欢迎来到Unity”,选择“文件\新项目”,选择文件夹存放点,将项目命名为“SharkBomber”。确保所有程序包都未被选择,然后点击“创建项目”。
现在,你看到的是个空白窗口。窗口上有许多按钮,我们将在下个部分中挨个解释。
Unity编辑器概述
现在,让我们通过某些额外的调试来实现已知的配置。
在应用窗口右上方,你会看到选择框,从列表中选择“高度”。这会重新分布窗口内容(游戏邦注:默认选择为“宽度”)。
现在,在窗口左上角(游戏邦注:工具栏下方)找到“游戏”标签,将其拖动到窗口底部附近的区域,直到你看到它将融入底部的指示,将其放在底部。
12:50 上传
现在,你应当可以看到如下图所示的窗口布局:
12:50 上传
让我们花点时间来阐述下这几个不同的面板:
1、场景:你可以在这里移动3D模型,浏览3D世界。
2、游戏:这是你所选择的镜头(游戏邦注:在这款游戏中指主镜头)看到的画面,在你使用编辑器时会即时更新。当你点击“运行”时,你的游戏可在此处运行,你可以测试游戏。
3、等级系统:显示你的对象树(游戏邦注:类似于HTML DOM),目前你只有一个镜头,但是我们随后会添加更多东西。该列表中的对象会呈现在场景中。
4、项目:这里的内容有你的项目、资产、音频文件以及所有你现在或随后将用到的东西。
5、检查器:你可以在这里看到场景中所有选择对象的资产并对它们做出调整。Unity的独特之处在于,当你运行场景时检查器依然保持运转,所以它同样也是你的调试器!
6、工具栏:这里有你可以用来与场景中对象互动的工具和用来测试场景的“运行”和“暂停”按钮。
在你的项目中,你可以拥有许多不同的场景,并在它们之间来回切换。现在,你已经在编辑器中设立了一个空白的场景。让我们将其保存。
1、在项目面板中点击右键,选择“创建/文件夹”,新文件夹生成。
2、将其重命名为“场景”,左键单击文件夹名称或选择文件夹后按“回车”都可以重命名文件夹。
3、现在,在主菜单处选择“文件/保存场景”,将保存对话框导航到“(你的项目目录)/资产/场景”,将场景保存为“LevelScene”。
让我们来确认下,在项目面板中打开场景文件夹,你可以看到LevelScene场景。
现在,我们做好了运行游戏的准备,点击上方的播放按钮!虽然画面没有发生改变,但事实上游戏正在游戏面板中运行!不要忘了,再次点击播放按钮来暂停游戏,这一点很重要!
设置iPhone Unity3D项目
Unity的精妙之处在于,它可以用来为iPhone、 Mac、Wii和其他平台构建游戏。在本教程中,我们将构建的是,所以我们需要先创建某些细节。
从菜单中选择“文件/构建设置”,然后点击“添加当前”按钮将当前选择场景添加到项目中。你可以看到,当它被添加时获得了指数“0”,这意味着它将是游戏开启时首个被加载的场景。这正是我们想要的结果。
从平台列表中选择iOS,点击“转换平台”按钮。现在,Unity的图标显示在iOS列中。
这便是我们现在需要的所有设置,点击“玩家设置”并关闭这个弹出窗口。你会注意到,玩家设置在检查器中开启,我们也需要在这里进行许多设置。
在“呈现平台”中,确保显示iPhone的标签已被选中,如下图所示:
12:50 上传
此处可以进行诸多设置,多数内容你已经在Xcode中接触过,你可以随后自行体验和探索。
现在,使用这个检查器进行下列修改:
1、在“分辨率和呈现”选项的“默认方向”中选择“水平左向”。
2、在束检查器的“其他设置”选项中输入所有你想要的内容
3、在“其他设置”选项中,将目标设备选择为“仅限iPhone”。
最后个步骤:左方的“游戏”标签下有许多可用的不同方向和分辨率,选择“iPhone Wide (480×320)”以匹配默认的横向方向。
12:50 上传
祝贺你,现在你完成了个基本的“Hello World”项目,你可以尝试将其在iPhone上运行!
在iPhone上运行游戏
为测试之前我们进行的设置,我们准备在Xcode和iPhone上测试项目。
首先从开发者最喜欢的Xcode版本开始,如果有欢迎屏幕的话先将其关闭,转换回Unity。这是种告诉Unity运行何种Xcode版本的技巧,同时运行两者即可。
12:50 上传
回到Unity中,从菜单中选择“文件/构建&运行”,构建设置会再次弹出,点击“构建和运行”按钮。
你会被询问要将Xcode保存在何处。在项目目录中创建名为“SharkBomberXcode”的文件夹,在文件名栏中输入“SharkBomber”。
片刻之后,项目构建完成,你会看到Xcode窗口弹出,打开的项目名为Unity-iPhone。Unity已经生成了Xcode项目源代码,现在这个已生成的项目以做好了构建和运行的准备。
你或许想要看下源代码,但是它事实上只是个样板文件,加载包含些许dll文件和资产的单框架。
你有两个目标,所以确保你的iOS设备已插入,选择“Unity-iPhone”目标和你的设备。我无法让模拟器目标运行,如果你可以做到的话,是件很棒的事情,我在下文阐述中使用的都是针对iOS设备。
片刻后,点击“运行”按钮,你的Unity项目现在能够在iPhone上运行了!
12:50 上传
你会看到默认的Unity开启屏幕,然后便是场景的蓝色背景。
停止运行任务,切换回Unity,保存项目。
首先,让我们来设置场景的主镜头。选择“等级系统”中的“主镜头”,在检查器中找到“投影”并将其设置为“正交”,“大小”设置为“10”,在剪裁平面中将“近端”设置为“0.5”,将“远端”设置为“22”。现在,你可以看到场景中镜头附近有个盒子,这是场景中可视范围的边界。
注意,我们已经将镜头投影设置为“正交”,这意味着深度坐标不会影响到内容在屏幕上的外观,我们可以有效地创建出2D游戏。现在我们先这样来做,直到你熟悉了Unity,我们再转向3D投影。
在检查器中将镜头位置坐标设置为(0,0,0)。注意,从现在开始,当我将位置编写成(x,y,z)的形式时,就是为该资产设定了在3个盒子中的值。
右键点击项目面板,再次选择“创建/文件夹”,将新文件夹命名为“纹理”。然后下载我为该游戏制作的背景图片,将其保存在你的硬盘中。将背景图片从查找器中拖动到你刚刚创建的“纹理”文件夹中。
我的iMac完成此次导入耗费了20秒左右的时间,完成后打开文件夹,选择“背景”纹理,然后在检查器中查看纹理资产。在预览面板的低端有行文字,表明Unity已经识别我们正在导入纹理,对其进行压缩处理。
12:50 上传
从菜单中选择“游戏对象/创建其他/飞机”,你会看到镜头旁边出现蓝色矩形。这便是我们刚刚添加到场景中的飞机,我们将把已经获得的纹理运用到它身上。
在等级系统面板中选择“飞机”,检查器上方的文本显示“飞机”进入“背景”。这会改变对象的名称,你可以通过这种方式来将对象重命名。从项目面板中拖动“背景”纹理,将其放入等级系统的“背景”对象中。在检查器中将飞机的位置设为(4,0,20),旋转设为(90,180,0),缩放设为(10,1,5)。正如你在“场景”面板中看到的那样,游戏会缩放和旋转飞机,使之面对镜头,这样镜头才会将飞机视为游戏的背景。
现在,为了能清楚地看到场景中的内容,我们需要光照(游戏邦注:这点类似于现实生活),选择“游戏对象/创建其他/方向性光照”,这会给你的场景添加些许光照。在“等级系统”中选择方向性光照,将其坐标设置为(0,0,0)。
12:50 上传
现在,我们完成了场景的所有设置和背景,到了添加对象并让它们开始移动的时候了!
向场景添加3D对象
从菜单中选择“游戏对象/创建其他/方块”,这样就像你的场景中添加了一个方块对象。这代表的就是游戏玩家,所以我们将它重命名为“玩家”。
将其位置设置为(-15,5.3,8)。你会看到方框出现在靠近“游戏”面板屏幕左侧的位置上,这便是我们游戏中飞机的起点,它将飞过海面到达屏幕的另一端。
现在,让我们导入飞机模型!我们使用由Reiner “Tiles” Prokein制作的免费3D模型,他将其免费发布到自己的网站上。
要进行上述步骤,先下载他的飞机模型并将内容解档。
在“项目”面板中点击右键,选择“创建/文件夹”,将文件夹重命名为“模型”。你可以在文件夹中解档飞机模型,将文件“airplane_linnen_mesh.obj”拖动到“项目”面板的“模型”文件夹中。
然后右键点击“模型”文件夹,选择“创建/文件夹”,将新的子文件夹重命名为“纹理”,我们将运用到模型中的纹理保存于此处。将“airplane_linnen_tex.bmp”文件拖动到新创建的“纹理”文件夹中。
接下来,在“等级系统”面板中选择“玩家”对象,查看“检查器”,“网状过滤器”选项是设定对象几何的过滤器。在“网状-方块”行中寻找中间带点的小圆圈,然后点击它,这样就能打开弹出窗口,你应当在窗口中双击飞机模型,这会将你的对象集合转变为飞机。
12:50 上传
现在,有个细节,飞机看起来有点糟糕。我不是个3D专家,但我发现Unity中有解决这个问题的方法:在“项目”面板中选择“airplane_linen_mesh”,然后在“检查器”中找到“普通”,然后选择“计算”,接下来向下滑动滚动条,点击“应用”按钮。
现在,你可以看场景中看到平滑的飞机模型!接下来,让我们来应用它的纹理:将“airplane_linnen_tex”纹理从“项目”面板中拖动到“等级系统”面板的“玩家”中。Unity会自动将纹理应用到场景中的飞机模型上。
最后对飞机做些许调整:在“玩家”对象中将旋转设为(0,90,350),缩放设为(0.7,0.7,0.7),这会旋转和缩放飞机,使之看起来在海平面上飞行。
这款游戏还并未完善,在下个版块中我们将让飞机开始飞行!
开始用C#进行Unity3D编程
正如你已经在构建设置对话框中看到的那样,Unity可以将你的项目构建成Wii游戏、iPhone游戏、单机Mac游戏等。正因为Unity如此全能,所以它需要某些跨媒体层次,你可以用来对游戏编程,每个不同的构建都会将其转变为平台专用代码。
所以,你需要使用C#在Unity中编程。当Unity生成你的Xcode项目时,它会自动将C#代码转换为平台专用代码!在“项目”面板中点击右键,选择“创建/文件夹”,将新建文件夹重命名为“类”。右键点击“类”文件夹,选择“创建/C#脚本”,将新文件重命名为“玩家类”。在“项目”面板中点击右键,选择“同步MonoDevelop项目”,这样会打开MonoDevelop IDE,在这个IDE中,你可以用C#来编程。
注:MonoDevelop是个移植自Linux的程序,用户界面类似于Gnome,所以程序崩溃是很正常的事情,尤其是在你重新调整窗口大小时。如果发生上述情况,只需要再次点击“同步MonoDevelop项目”即可打开。
12:50 上传
以下是MonoDevelop GUI的3个主要区域:
1、你的MonoDevelop项目浏览器,在资产/类中你可以看到PlayerClass.cs文件
2、当前打开类的概览
3、编辑器区域,句法高亮和自动完成能够为你的编程提供帮助
在项目浏览器中找到你的PlayerClass.cs文件,双击将其在编辑器中打开。确保类如下所示:
[C#] 纯文本查看 复制代码using UnityE
using System.C
public class PlayerClass : MonoBehaviour {
// Use this for initialization
void Start () {
// Update is called once per frame
void Update () {
“using”句法包括所提供的库和框架,在UnityEngine这个库中,你可以访问iPhone加速计、键盘输入和其他手持设备功能。
你可以定义新类并继承自MonoBehaviour,这可以让你获得大量的内容:你可以使用当特定事件被触发时会被调用的大量方法。
下面数行就是开始和更新方法,这是两个重要事件。
1、开始在对象显示在屏幕上时调用,这样你才能进行初始化。
2、更新在每帧播放时调用,以实现移动和游戏逻辑等。
现在,让我们先转回Unity片刻。我们想要让飞机在海面上飞行,而且当它从屏幕右侧移出时能够再次从左侧移入屏幕。让我们来看看要将飞机移动到屏幕左侧的哪个位置。“场景”面板的右上角有个方向部件,点击X柄:
12:50 上传
这可以旋转场景,将其方向调整为水平面对你。再次点击现在位于部件左侧的柄,这会再次使场景旋转,你可能需要多次点击左柄,直到你看到的场景正面如下所示:
12:50 上传
现在,你可以使用鼠标滚轴来缩放场景,使其适合“场景”面板的大小。确保上方工具栏的移动工具被选中,在“等级系统”中选择“玩家”。
12:50 上传
现在,你可以看到有个新部件附在飞机上,带有绿色和红色的箭头。现在,你可以拖动箭头,它们会根据箭头所代表的轴来移动飞机:
12:50 上传
我们需要做的就是拖动红色箭头,将飞机向右侧拖动,直到它离开下方的“游戏”面板。
在“场景”面板中拖动时,要同时查看“游戏”面板。将飞机放置在可视屏幕之外,在“检查器”中查看它的位置。
现在,X的值应当在17.25左右,这是屏幕的右侧边界,你可以向左拖动飞机,这样便可以看到左侧边界的值为-17.25左右,所以我们将在设定飞机飞行时使用18和-18这两个值。将飞机放回屏幕左侧之前的位置。转换回MonoDevelop,对PlayerClass.cs进行下列修改:
[C#] 纯文本查看 复制代码[/align][align=left]//just after class declaration line
//inside the Update method
if (transform.position.x & 18) {
//get new speed
speed = Random.Range(8f,12f);
transform.position = new Vector3( -18f, transform.position.y, transform.position.z );
transform.Translate(0, 0, speed * Time.deltaTime);
或许你已经猜到,你刚刚在类上设定了公共资产“速度”,Unity的独特之处就在于,所有的公共类资产都可以通过“检查器”面板访问!
所以,你可以在IDE中设定类资产值,你可以在游戏运行时自由地即时调整资产值,这难道不是件很棒的事情吗?
对每个游戏对象来说,“改变”变量是个处理对象空间位置的资产,包括旋转、位置和缩放等。根据每次更新调用来调整对象的位置,这样它才能够移动到屏幕右侧。
我们不能只按照更新的每次调用来将飞机移动特定距离,因为没有人知道该命令每秒的调用次数。事实上,我们以每秒单位数来确定速度,将速度除以最后一次调用更新所经过的时间。这样,对象的移动就会独立于当前帧率,保持以相同的速度移动。
转化调用涉及到3个值,也就是每个轴上面需要做出的转化。你或许已经注意到,我们也在Z轴上移动飞机。我们必须这么做,因为我们要在屏幕上旋转飞机,所以转化Z轴从玩家的视角来看就是将其移动到右侧!
看看“if”条件,我们查验transform.position.x是否大于18,如果条件满足,我们会将飞机的位置设置在相同的坐标上,但X轴值改变为“-18”。我们使用新的Vector3(x,y,z)来设定位置,我们将在定位中大量使用这些矢量。你还会看到,我们将速度设定为8到12间的随机值,这只是为了让飞机可以更自由地移动,让游戏更加有趣。
这样,我们便为飞机的移动做好了准备!
转回Unity,将“玩家类”从“项目”面板中拖动到“等级系统”面板的“玩家”上,这样你便将类同游戏对象绑定起来。在“等级系统”中选择“玩家”,查看“检查器”,你会看到出现了名为“玩家类(脚本)”的新带,你还可以看到公共资产。将它的值设定为“12”。
准备好之后,点击播放按钮。你会看到在“场景”和“游戏”面板中,飞机开始移动,当它从右侧移出时会回到屏幕左侧。你还可以在“检查器”中看到飞机位置的X轴数值实时更新,它向你展示的是飞机在特定时刻的位置。而且,飞机每次飞行的速度会随机改变。
12:50 上传
享受目前所取得的成果后,不要玩了再次点击播放来暂停游戏。
接下来,我们要为开始为这架飞机制作敌人——一只凶险的鲨鱼!现在,你应当对这个工具的基本使用方法较为熟悉。我们接下来会进展得更快,因为接下来一段时间里我们无需完全重新制作所有东西。
需要休息会儿吗?到目前为止,我们已经教授了许多内容!如果你感到疲惫,可以先休息会儿,只是要注意保存Unity项目。但是,当你再次打开Unity项目时,工具默认会打开空白场景。要加载你正在制作的这个场景,双击“项目”面板中的“LevelScene”,你就可以继续工作了。
下载并解档鲨鱼模型。像你之前处理飞机那样,将文件“shark.obj”拖动到“项目”面板的“模型”文件夹中,将“sharktexture.bmp”放置在“模型/纹理”中。
从菜单上选择“游戏对象/创建其他/胶囊”,将“等级系统”中的“胶囊”对象重命名为“鲨鱼”。在“检查器”中的“网过滤器”带中,点击内部带点的圆圈,在弹出窗口中双击鲨鱼模型。现在,你应当能够在“场景”和“游戏”面板中看到鲨鱼几何。
将“sharktexture”从“项目”面板拖动到“等级系统”的“鲨鱼”对象中,这会让你的鲨鱼拥有有力的大嘴和邪恶的眼睛!看到这样的鲨鱼,我已经冒出了炸它的念头!
确保“鲨鱼”被选中,在“检查器”中设置如下资产:位置(20,-3,8),范围(1.2,1.2,1.2),这样鲨鱼便被放置在贴近镜头可视范围右侧的位置,它从这里开始向屏幕左侧移动。
12:50 上传
现在,因为我们希望鲨鱼能够同我们的炸弹互动,所以我们希望鲨鱼的碰撞器或多或少能同鲨鱼的几何配对。正如你看到的那样,有个绿色的胶囊与屏幕中的鲨鱼粘连。这便是鲨鱼的碰撞器。让我们将其与邪恶的鲨鱼身体配对。
在“检查器”中寻找“胶囊碰撞器”带,设定如下数值:半径设为“1”,高度设为“5”,方向设为“X轴”,中心设为“(0,0,0)”。现在,你会看到胶囊碰撞器已经被调整到与鲨鱼身体相似的样子,比原先好多了!
12:50 上传
最后,在“项目”面板“模型”文件夹中选择“鲨鱼”模型,然后在“检查器”中寻找“普通”,选择“计算”,然后下拉点击“应用”按钮。
在“项目”面板“类”文件夹中点击右键,选择“创建/C#脚本”,将新脚本重命名为鱼类。点击右键,选择“同步MonoDevelop项目”。
MonoDevelop将会弹出,打开FishClass.cs文件,输入下列代码:
[C#] 纯文本查看 复制代码using UnityE
using System.C
public class FishClass : MonoBehaviour {
public float speed = 6f;
// Update is called once per frame
void Update () {
if (transform.position.x & -30 || transform.position.x & 30) {
//turn around
transform.Rotate(new Vector3(0,180,0));
transform.Translate( new Vector3(-10, -transform.position.y + Random.Range(-4,-1),0) );
//get new speed
speed = Random.Range(6f,10f);
transform.Translate( new Vector3(-speed*Time.deltaTime,0,0) );
这些代码同我们上文中针对飞机编写的很相似。我们设立速度资产,在更新事件处理器中使用转化。鲨鱼的移动便由此实现。
注意,这次我使用的是:
[C#] 纯文本查看 复制代码transform.Translate( new Vector3(x,y,z) );
这样做只是想演示某些使用不同参数的方法,尽管使用独立的3个数值和1个矢量是完全相同的。
现在,让我们看看鲨鱼在到达屏幕边界后会做出何种动作。这次我们设定的鲨鱼移动屏幕边界坐标为-30和30,一段时间内鲨鱼将从屏幕上消失,这样玩家就无法轻易地在其折返时进行伏击。
当鲨鱼到达左右屏幕边界时,它会折返并改变速度,并不断如此往返。
显然,transform.Rotate(new Vector3(x,y,z))的调用可以使对象根据特定坐标值转向,你对transform.Rotate(new Vector3(x,y,z))应当很熟悉了。
这确实是件很简单的事情!转换回Unity,拖动“鱼类”脚本到“等级系统”的“鲨鱼”对象上。现在点击播放:你可以看到鲨鱼往返游动,直到被炸弹击中。太棒了!
12:50 上传
添加小丑鱼
让我们再用同样的做法来添加小丑鱼。步骤如下:
1、下载并解档小丑鱼模型。
2、拖动“mesh_clownfish.obj”到“项目”面板的“模型”文件夹中,将“clownfish.bmp”拖动到“模型/纹理”中。
3、选择“游戏对象/创建其他/胶囊”,将“等级系统”中的“胶囊”对象重命名为“小丑鱼”。
4、点击“网过滤器”带有点的循环按钮,在弹出窗口中点击小丑鱼几何。
5、将“小丑鱼”模型纹理拖动到“等级系统”中的“小丑鱼”对象上。
6、确认“小丑鱼”已选中的情况下在“检查器”中修改下列资产:位置设为(-20,-1,7),旋转设为(0,180,0),缩放设为(0.4,0.3,0.3)。
7、在选中“小丑鱼”的前提下,在胶囊碰撞器带中修改下列资产:半径设为“4”,高度设为“4”,方向设为“Z轴”,中心设为“(0,0,0)”。
8、将“鱼类”从“项目”面板拖动到“等级系统”的“小丑鱼”对象中。这样就把与鲨鱼相同的一般鱼类分配给小丑鱼。
9、在“项目”面板“模型”文件夹中选择“mesh_clownfish”模型,然后在“检查器”中找到“普通”,选择“计算”,然后下拉并点击“应用”按钮。
点击播放,现在你可以看到屏幕上已经有两条移动的鱼,而这次我们完全无需另外编写代码!
12:50 上传
鱼可以来回游动,飞机也能够飞行,所有内容都运转良好。现在,我们还需要炸弹。
下载和解档油桶模型。与之前一样,将“colourcan.obj”文件拖动到“项目”面板“模型”文件夹中,将“cantex.bmp”文件放入“模型/纹理”。
从菜单中选择“游戏对象/创建其他/胶囊”,将对象重命名为“炸弹”。在“网过滤器”弹出窗口中双击油桶几何。将“cantex”纹理拖动到“等级系统”中的“炸弹”对象上。在“检查器”中的“胶囊碰撞器”中点击下图按钮打开弹出菜单:
12:50 上传
当弹出菜单出现时,选择“重置”,这样碰撞器自动会接受分配的几何大小!
接下来,在“项目”面板“模型”文件夹中选择“colourcan”模型,然后在“检查器”中找到“普通”,选择“计算”,然后下拉并点击“应用”按钮。
接下来,让我们来接触一项新的内容!再次选择炸弹对象,在胶囊碰撞器带中勾选“Is Trigger”选框!勾选这个选框意味着当炸弹同其他对象碰撞时会触发事件。
但是,要使上述情况发生,我们还需要为炸弹分配刚体,因为至少要有一个碰撞对象带有刚体。从菜单中选择“组件/物理/刚体”(游戏邦注:此时要确保等级系统中的炸弹被选中)。
完成这个步骤后,“检查器”中应当会显示新带“刚体”。去除“使用万有引力”,然后勾选“Is Kinematic”,这样我们才能程序化地控制刚体。这样,碰撞爆炸实现的所有条件均已达成!
12:50 上传
下载炸弹释放的音效,将其保存在硬盘上。
我们要在飞机投放炸弹时播放这个音效,也就是当炸弹首次出现在屏幕上的时候。让我们来实现这个目标!
右键点击“项目”面板,选择“创建/文件夹”,将新文件夹重命名为“音频”。将“bahh1.aif”文件拖动到“音频”文件夹中。接下来,将“bahh1”音效文件从“项目”面板拖动到“等级系统”中的“炸弹”对象上。
无论你是否相信,我们需要做的就只有这么多。音效同炸弹绑定,当炸弹出现在屏幕上时就会播放。现在,你就知道用Unity制作游戏是件很简单的事情。
在“等级系统”中选择“炸弹”对象,在“检查器”中找到“音频来源”带,可以看到“激活时播放”选框已经勾选,这就相当于告诉音频在对象出现在屏幕上时播放。再看看“场景”面板,你会看到现在炸弹上有个扬声器的图标。
12:50 上传
预制游戏对象
“等级系统”展示的是当前显示在屏幕上的内容,“项目”包含的是你所拥有的所有对象。这与你在本板块要实现的目标有关,也就是让飞机装载多个炸弹,并根据自己的意愿将其投放到海中。
我们准备要做的事情是,预制游戏对象(游戏邦注:即该对象已准备好出现在屏幕上)但不将其添加到屏幕上。
在“项目”面板中点击右键,选择“创建/文件夹”,将其重命名为“预制”。右键点击“预制”,选择“创建/预制”。将新预制重命名为“炸弹预制”。注意,小方块图标是白色的,这表示这是个空白预制。
现在,从等级系统中将“炸弹”拖动到“项目”中的“炸弹预制”上。注意,现在方块图标变为蓝色,这表示这是个满预制,已经做好克隆的准备。看看现在的“等级系统”面板,“炸弹”字体变为蓝色,这意味着现在对象正处于预制状态。
现在,我们已经设置完成,就不需要原本位于屏幕上的炸弹对象。右键点击“等级系统”中的“炸弹”,选择“删除”。
接下来,让我们来编写代码。转向MonoDevelop,打开PlayerClass.cs,在“速度”资产中添加下列代码:
[C#] 纯文本查看 复制代码public GameObject bombP
在这个资产中,我们涉及到了炸弹预制,我们将实现上述设定的目标。注意,资产类型是“游戏对象”,我之前说过,游戏中的所有东西都是游戏对象(游戏邦注:很像Cocoa中的NSObject),所以对所有对象设定此种类型是比较安全的做法。
现在,转换回Unity,选择“玩家”。正如你所期望的那样,“检查器”中的“脚本”下出现新资产“炸弹预制”。让我们来设定其数值:将“炸弹预制”从“项目”面板拖动到“检查器”中的“无(游戏对象)”上,现在区域显示它已经为炸弹预制分配了数值。
对于游戏中的炸弹,我们还需要有个C#类,右键点击“项目”中的“类”文件夹,选择“创建/C#脚本”,将其重命名为“炸弹类”。右键点击并选择“同步MonoDevelop项目”,MonoDevelop会弹出。打开BombClass.cs并将内容替换为如下代码:
[C#] 纯文本查看 复制代码using UnityE
using System.C
public class BombClass : MonoBehaviour {
private float ySpeed = -4f;
// Update is called once per frame
void Update () {
transform.Translate( new Vector3(0f, ySpeed*Time.deltaTime, 0f) );
if (transform.position.y & -11) {
Destroy(this.gameObject);
这段代码同上文所述代码极为相似,我们每帧转化对象,当移出屏幕边界时做出适当的反应。在炸弹的设置中,我们想要的是炸弹在移除边界后被摧毁,这样我们就能保持从炸弹预制中生成新对象。
在代码中,“this”指C#炸弹类,gameObject资产指屏幕上的对象,代码让我们能够摧毁屏幕上的对象和所有相关组件。有关游戏对象等级系统的内容,我们将在教程的第2部分中讨论。
终于到了最后一个部分,轰炸鲨鱼!打开PlayerClass.cs,在更新方法末端添加:
[C#] 纯文本查看 复制代码if (Input.anyKeyDown) {
GameObject bombObject = (GameObject)Instantiate(bombPrefab);
bombObject.transform.position = this.gameObject.transform.
让我们来依次分析这3行代码:
1、输入是让你可以使用键盘、鼠标、加速计和触摸的类。当按键被按动后,Input.anyKeyDown值变为真,这种情况一次性只能出现一次。比如,按键首次按动过后,Input.anyKeyDown又会变为假,直到另一个按键
被按动。anyKeyDown是手持抽象,当玩家点击鼠标、按动键盘按键或触摸iPhone屏幕的动作被接收到时,它的值会变为真。
2、(GameObject)Instantiate(bombPrefab)用来从预制中创建实例,将其添加到场景中。
3、最后,我们将炸弹的位置设成与飞机相同。
这样,当玩家点击屏幕时,炸弹都会出现,随后开始下落,当离开屏幕时就会自动消失。
让我们来尝试一下!转换回Unity并点击播放,现在如果你在“游戏”面板中点击,就会看到炸弹在飞机所在点生成。
多次点击就会生成多枚炸弹。你应当还能听到炸弹的音效。但是炸弹不会下落!为什么呢?你能不能自己找到问题所在呢?
12:50 上传
我希望你能够自己发现问题,问题就是:你还未给炸弹预制分配炸弹类。从“项目”面板“类”文件夹中将“炸弹类”拖动到同面板“预制”文件夹中的“炸弹预制”上。查看“检查器”,看是否能够看到炸弹类脚本带。现在再次点击播放,效果好多了!
12:50 上传
但是,仍然不够完美,那些鲨鱼并没有在被炸弹击中后死亡。因为我们已经配置了碰撞器和炸弹的刚体组件,我们只需要添加代码来对碰撞做出反应。转换回MonoDevelop,将下列新方法添加到炸弹类中:
[C#] 纯文本查看 复制代码void OnTriggerEnter(Collider obj) {
if (obj.gameObject.name == “Shark”) {
//reset shark
obj.gameObject.transform.rotation = Quaternion.
obj.gameObject.transform.position = new Vector3(20f, -3f, 8f);
Destroy(this.gameObject);
让我们来逐行解释上述代码:1、OnTriggerEnter是当实体同其他实体发生碰撞时被调用的方法,第2个实体被视为参数。2、在这行中,我们检测炸弹击中的对象是否是“鲨鱼”。3、如果被击中的确为鲨鱼,那么首先我们会重置对象旋转。4、其次,我们将鲨鱼重置回其原本的位置。5、最后,我们调用this.gameObject摧毁来让炸弹从屏幕上消失。依然很简单,不是吗?你只需要这些代码就足够了。转换回Unity并运行游戏!用炸弹击中鲨鱼后它会消失,然后屏幕中会出现新的鲨鱼。你还可以从菜单中选择“文件/创建&构建”,当Xcode弹出时点击其中的“运行”,这样你就可以在iPhone上运行游戏了!
12:50 上传
在本系列教程的第2部分中,我们将增添游戏趣味性,让游戏变得更富挑战和有趣!
自己用unity制作的游戏;counity发布成安装包;要电脑什么配置;unity3d 切换平台;unity3d中实现帧同步;unity自带的unity音效脚本;unity ios 模拟器;unity 3d ios发布;ios游戏加速unity3d;unity 转换世界坐标;unity 音效触发;unity屏幕坐标世界坐标;unity内置浏览器;unity调用unity如何制作树;unity3d;unity游戏制作;unity制作的游戏;unity小游戏制作;unity上怎么制作游戏;unununity发布 安装包;unity3d电脑配置;unity3d 5.3切换平台;unity3d 帧同步;unity脚本 音效;unity ios 使用模拟器;unity 3d如何发布加速unity 世界坐标转换;unity 触发音效;unity 屏幕世界坐标;哪个浏览器内置java调用unity collider 2d;unity制作树;unity3d模型替换;unity 背景循环;unity 循环背景;unity单机游戏;unity单机游戏有那些;unity死亡后不再继续;unity 场景预加载;mac版unity3unity3d 移除 组件;unity 重置场景;unity距离单位是什么;unity 生成敌人;unity碰撞后消失;unity方块移动;unity两个方块;unity3d使用dll崩溃;unity3d 加载unity 星球;unity3unity3d停止工作;unity怎么导入树;unity滚动背景;unity3d界面跳转;unity 模型消失;mac下unity用什么unity如何制作;unity3d 在xcode 调试;unity 触摸 测试;unity 测试触摸;unity新手教程;unity3unity3d 解释 c#unity random.unity3d双击事件;unity 碰撞坐标;unity ios 发布 教程;unity3d 箭头;unity图片切换;unity点击屏幕点击事件;多个字体替换学unity3d 用哪个语言;unity调用c dll
每日推荐:
蛮牛相关业务合作(市场合作/项目需求/人才招聘)联系-崇慕 QQ:
251/150排名<font color="#FF昨日变化25主题帖子积分
初来乍到, 积分 51, 距离下一级还需 99 积分
初来乍到, 积分 51, 距离下一级还需 99 积分
在线时间22 小时
谢谢分享!!!
每日推荐:
72079/5000排名<font color="#FF昨日变化4主题帖子积分
日久生情, 积分 2079, 距离下一级还需 2921 积分
日久生情, 积分 2079, 距离下一级还需 2921 积分
蛮牛币4982
在线时间240 小时
看看,学习学习
每日推荐:
4487/500排名<font color="#FF昨日变化6主题帖子积分
四处流浪, 积分 487, 距离下一级还需 13 积分
四处流浪, 积分 487, 距离下一级还需 13 积分
在线时间142 小时
感觉还可以,不错啊
每日推荐:
5835/1000排名<font color="#FF昨日变化2主题帖子积分
熟悉之中, 积分 835, 距离下一级还需 165 积分
熟悉之中, 积分 835, 距离下一级还需 165 积分
在线时间194 小时
看看 还有吗!?
每日推荐:
蛮牛论坛干货区作者

我要回帖

更多关于 u3d各向异性头发 的文章

 

随机推荐