前几篇文章介绍了很多Unity3D引擎自身的一些问题, 今天我们在回到IOS设备上讨论一些触摸屏幕手势,本章的目标是通过触摸iPhone屏幕手势 实现模型左右的旋转,与模型的缩放。
大家想一想模型的旋转,实际上是镜头的旋转。模型的缩放实际上是镜头Z轴方向的坐标。那么实现本章的内容只需要控制镜头的位置方可实现。
我们在游戏场景中创建一些简单的模型做为参照物,插一句 “大家有谁知道 . FBX 的模型那里可以免费找到,我想在博文中加点游戏模型让场景更好看一些,可是苦于找不到有点郁闷,用公司的模型来写博文有觉得有点不合适”哇咔咔 ,如果有知道的哥们 不妨告诉我喔。啦啦啦。
我们创建一个简单的游戏平面, 然后平面中放一个箱子做为旋转缩放的参照物。如下图所示,选中摄像机,给摄像机添加一个脚本名称为Move. 脚本中有一个参数 Target,它的作用是设置摄像头旋转移动参照物,这里把一个箱子赋值给了 Target,那么左右滑动屏幕会发现箱子在旋转,两手缩放屏幕会发现箱子在放大与缩小。
我们看看Move这条脚本,说明一下几个重要的 :
这些方法都是系统自己调用的方法
function Start () : 游戏启动以后只调用一次,可用于脚本的初始化操作,
function Update ():Start()方法调用结束以后每一帧都会调用,可以在这里更新游戏逻辑。
function LateUpdate (): Start()方法调用结束以后每一帧都会调用,但是它是在 Update()调用完后调用。
Move.js完整代码
001 |
//用于绑定参照物对象 |
002 |
var target : Transform; |
003 |
//缩放系数 |
004 |
var distance = 10.0; |
005 |
//左右滑动移动速度 |
006 |
var xSpeed = 250.0; |
007 |
var ySpeed = 120.0; |
008 |
//缩放限制系数 |
009 |
var yMinLimit = -20; |
010 |
var yMaxLimit = 80; |
011 |
//摄像头的位置 |
012 |
var x = 0.0; |
013 |
var y = 0.0; |
014 |
//记录上一次手机触摸位置判断用户是在左放大还是缩小手势 |
015 |
private var oldPosition1 : Vector2; |
016 |
private var oldPosition2 : Vector2; |
017 |
018 |
//初始化游戏信息设置 |
019 |
function Start () {
|
020 |
var angles = transform.eulerAngles; |
021 |
x = angles.y; |
022 |
y = angles.x; |
023 |
024 |