Unity3D for iOS初级教程:Part 1/3(下)
转自:http://www.cnblogs.com/alongu3d/archive/2013/06/01/3111735.html
一个手指来统治他们
但是等等,你还没有完全完成!
如果你玩游戏有一会,你会注意到有些奇怪的事情。你可以通过一个手指来移动方块,但是当你用两个手指离开它相同的距离方块也可以被移动。这是什么回事呢?
从你的MoveSimple脚本中回忆起这行:
var ray : Ray = Camera.main.ScreenPointToRay |
它创建了一条从摄像头到触摸点的射线。触摸点用Input.mousePosition来表示。当你在iOS设备上运行的时候,Input.mousePosition是作为所有当前触摸点平均位置来计算的。放置你的手指,若平均值落在角色上,就会让角色移动!
你应该修正这点来避免困扰用户。你可以使用Unity中可以使用的触摸相关函数来监测触摸事件,并且找到一个更加精确的触摸位置。
打开你的MoveSimple脚本。在文件的最上面(其他变量所在的位置)添加一个标志,来指示你可以使用触摸输入:
private var isTouchDevice : boolean = false; |
你这样做了后,你就可以测试运行在iOS和Unity编辑器上。如果你只打算在iOS上测试,那么你可以跳过触摸检查的逻辑,然后简单的使用触摸相关的函数。
下一步添加一个Awake()函数,来完成一个运行时的检查,探知游戏是否运行在一个iOS环境下。这个Awake()函数仅仅被调用一次,就是当游戏加载的时候:
function Awake() { |
Application.platform返回游戏正在运行的平台。RuntimePlatform.IPhonePlayer指示游戏正运行在iOS上。
最后,根据下面修改你的Update()函数来处理触摸输入:
function Update () { var clickDetected : boolean; |
保存你的修改。
你正在使用两个新的变量,clickDetected和touchPosition,来监测点击和保存点击的位置。如果在iOS上运行,你通过检查触摸是在开始状态来判断点击。然后根据首个触摸来计算点击的位置。如果你没有运行在iOS上,逻辑和之前的一样。
在重新构建项目之前,关闭Xcode项目。现在重新在Unity中的Build Settings对话框里构建。如果出现带有一个关于构建的文件夹已经存在的警告,选择Replace.
当Xcode项目构建完成,打开它,然后在你的iOS设备上运行。核对你可以移动英勇的小方块,而且让你用两个手指移动它的错误已经消失了。
向哪里进发?
恭喜你已经完成学习用Unity开发的基础部分,和如何部署到iOS上!这里有一些从项目开始到目前为止的所有的代码下载: Unity Project, Xcode Project.
这份教程的下个部分,通过增强英勇的小方块的移动和改善场景,你会构建这个非常简单的游戏。你也会做一些调试的工作!
在此期间,如果你有任何关于到目前位置你所做的问题或建议,请跳转到论坛中的相关会话中!
Unity3D for iOS初级教程:Part 1/3(下)的更多相关文章
- Unity3D for iOS初级教程:Part 2/3
转自Unity3D for iOS 这篇文章还可以在这里找到 英语 Learn how to use Unity to make a simple 3D iOS game! 这篇教材是来自教程团队成员 ...
- Unity3D for iOS初级教程:Part 3/3
转自Unity 3D for iOS 这篇文章还可以在这里找到 英语 Learn how to use Unity to make a simple 3D iOS game! 这份教程是由教程团队成员 ...
- Unity3D for iOS初级教程:Part 3/3(上)
转自:http://www.cnblogs.com/alongu3d/archive/2013/06/01/3111738.html 欢迎来到第三部分,这是Unity 3D for iOS初级系列教程 ...
- Unity3D for iOS初级教程:Part 1/3
转自Unity 3d for ios 这篇文章还可以在这里找到 英语 Learn how to use Unity to make a simple 3D iOS game! 这篇教材是来自教程团队成 ...
- Unity3D for iOS初级教程:Part 3/3(下)
转自:http://www.cnblogs.com/alongu3d/archive/2013/06/01/3111739.html 消息不会自动消除 你基本的游戏功能已经完成了,但是显示一些关于游戏 ...
- Unity3D for iOS初级教程:Part 1/3(上)
转自:http://www.cnblogs.com/alongu3d/archive/ 如果图片看不到,请查看原文 这篇教材是来自教程团队成员 Christine Abernathy, 他是Faceb ...
- Unity3D新手入门初级教程
根据游戏调查公司 Newzoo 针对全球手机游戏市场所做的调查报告显示,2016年全球游戏市场规模将达到 996 亿美元,其中手机游戏市场将以 21.3% 的增幅获得约 369 亿美元的收入,而中国手 ...
- 新手必看,史上最全的iOS开发教程集锦,没有之一!
最近大火的iPhone XS Max和iPhone XS,不知道有没有同学已经下手了呢?一万三的价位确实让很多人望而却步啊.据说为了赢得中国的用户,专门出了双卡双待的,可想而知中国市场这块“肥肉”人人 ...
- [[iso教程]] 《4个月ios实体教程》全网最新、最全ios视频教程
全网最新.最全ios视频教程 内容简介 <ios实体教程>主要介绍如何使用iOS提供的强大工具集创建iOS应用.全视频对iOS操作系统做了全面的介绍,首先讲解如何构建应用程序的用户界面,涵 ...
随机推荐
- 羞,Java 字符串拼接竟然有这么多姿势
二哥,我今年大二,看你分享的<阿里巴巴 Java 开发手册>上有一段内容说:"循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作 ...
- pscp命令详解
注意:只能在winds下执行 环境准备 1.先下载pscp软件,这里是我的云盘地址: 链接:https://pan.baidu.com/s/1mkzRMv-aosC94KbMcMea9w 提取码:k0 ...
- C++总结(1)keywords to the class
目录 Chapter 1.关于类的关键字 1. class,struct与union 2.private,public与protected 3.friend 4.virtual 5.const 6.i ...
- Flutter之环境配置与项目搭建
Flutter之环境配置与项目搭建 一,介绍 1.1,Dart Dart 是一种 易于学习. 易于扩展.并且可以部署到 任何地方 的 应用 编程 语言.并且同时借鉴了Java和JavaScript.D ...
- python3 控制安卓手机的飞行模式遇到的问题汇总
一.首先调通电脑对手机能落实 adb shell命令 验证通过标准:控制wifi开关的命令,能让wifi功能开启和关闭 (adb shell svc wifi enable 和 adb she ...
- Maven系列第8篇:你的maven项目构建太慢了,我实在看不下去,带你一起磨刀!!多数使用maven的人都经常想要的一种功能,但是大多数人都不知道如何使用!!!
maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能. 这是maven系列第8篇. 整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部 ...
- Java编程思想——第14章 类型信息(二)反射
六.反射:运行时的类信息 我们已经知道了,在编译时,编译器必须知道所有要通过RTTI来处理的类.而反射提供了一种机制——用来检查可用的方法,并返回方法名.区别就在于RTTI是处理已知类的,而反射用于处 ...
- boost.asio新框架的设计概念总结
1.66版本,boost.asio库重新设计了框架,目前最新版为1.71.读了几天代码后,对框架中相关概念总结.因为是泛型编程的库,所以分析的概念层的设计. 可通过boost官方文档,strand的1 ...
- ZeroC Ice发送大数据
继上文,我们使用ZeroC Ice传递大块数据时,通常有两种做法,一种是一次请求,另一种就是分多次请求(,这种做法在官方文档有例子).选哪一种根据需要而定. 当分多次请求来完成一大块数据,到底选择每次 ...
- 如何利用快照( snapshot )功能快速定位性能问题
我们常常会遇到这样的困惑,收到用户或者客服的反馈,平台使用有问题,但是测试人员搭建环境后又没办法复现故障,最后导致问题没法解决,眼睁睁地看着用户流失. 这是因为线上生产环境非常复杂.很多时候是偶发性 ...