/*
Touch Orbit
Programmed by: Randal J. Phillips (Caliber Mengsk)
Original Creation Date: 12/16/2011
Last Updated: 12/16/2011
Desctiption: Simple orbit by one touch and drag, as well as pinch to zoom with two fingers.
*/
var x:float;
var y:float;
var xSpeed:float;
var ySpeed:float;
var pinchSpeed:float;
var distance:float = 10;
var minimumDistance:float = 5;
var maximumDistance:float = 100;
private var touch:Touch;
private var lastDist:float = 0;
private var curDist:float = 0;
private var gameCamera:Camera;
function Start ()
{
gameCamera = Camera.mainCamera;
}
function Update ()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
Application.Quit();
}
if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Moved)
{
//One finger touch does orbit
touch = Input.GetTouch(0);
x += touch.deltaPosition.x * xSpeed * 0.02;
y -= touch.deltaPosition.y * ySpeed * 0.02;
}
if (Input.touchCount > 1 && (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved))
{
//Two finger touch does pinch to zoom
var touch1 = Input.GetTouch(0);
var touch2 = Input.GetTouch(1);
curDist = Vector2.Distance(touch1.position, touch2.position);
if(curDist > lastDist)
{
distance += Vector2.Distance(touch1.deltaPosition, touch2.deltaPosition)*pinchSpeed/10;
}else{
distance -= Vector2.Distance(touch1.deltaPosition, touch2.deltaPosition)*pinchSpeed/10;
}
lastDist = curDist;
}
if(distance <= minimumDistance)
{
//minimum camera distance
distance = minimumDistance;
}
if(distance >= maximumDistance)
{
//maximum camera distance
distance = maximumDistance;
}
//Sets rotation
var rotation = Quaternion.Euler(y, x, 0);
//Sets zoom
var position = rotation * Vector3(0.0, 0.0, -distance) + Vector3(0,0,0);
//Applies rotation and position
transform.rotation = rotation;
transform.position = position;
}
function OnGUI()
{
//Simple output to display the distance from the center
GUI.Label(Rect(0,0,Screen.width, Screen.height),distance.ToString());
}
分享到:
相关推荐
《TouchScript:Unity中的多点触控解决方案》 在当今的数字时代,触屏设备已经无处不在,从智能手机到平板电脑,再到大型互动展示,触控已经成为用户与数字世界交互的主要方式。Unity,作为一款广泛应用的游戏开发...
Tuio(Tabletop Ubiquitous Object)协议就是一种用于支持多点触控和手势识别的技术,它允许应用程序接收来自各种输入设备(如触摸屏、投影表面等)的实时位置和速度数据。 Tuio协议与Unity3D的结合,使得开发者...
"unity+tuio实现触屏demo"这个项目是将Unity引擎与Tuio协议相结合,以实现多点触控功能的演示。在Unity中集成Tuio协议,开发者可以创建支持手指或触控笔等多点触控设备的应用程序,这在移动设备和具有触摸界面的设备...
TUIO(Touch User Interface Object)则是一种用于多点触控和手势识别的开放协议,它允许设备如触摸屏、Kinect等与应用程序进行通信。将TUIO与Unity结合,可以创建出更加直观、互动性强的用户体验。 在"TuioTest"这...
总的来说,Unity3D提供了全面的触摸事件支持,使得开发者可以充分利用移动设备的多点触控特性,创造各种创新的游戏控制方案。通过对Input类和Touch类的深入理解和实践,我们可以构建出更加自然、直观的用户界面,...
3. **多点触控支持**:EasyTouch支持同时处理多个触摸输入,这对于需要手势识别的游戏尤为重要。例如,你可以通过检测两个手指的滑动来实现旋转或缩放操作。 4. **触摸手势**:EasyTouch提供了一些预定义的手势,如...
- **触摸屏输入**:支持移动设备上的多点触控操作。 #### 五、发布与优化技巧 **5.1 平台适配** - **支持多平台**:Windows、Mac、iOS、Android等。 - **适配屏幕尺寸**:自动调整UI布局以适应不同分辨率的屏幕。...
### Unity3D手势触摸插件 Fingers - Touch Gestures for Unity 2.5.6 #### 插件简介 在当今的游戏开发领域,尤其是移动平台游戏的开发中,手势识别和触摸控制已成为不可或缺的一部分。Unity作为一款流行的游戏开发...
《Unity中的EasyTouch 5:打造触摸屏虚拟控制器》 Unity引擎因其强大的跨平台能力和丰富的图形渲染能力,深受游戏开发者喜爱。在开发触屏设备的游戏时,如何有效地处理触摸输入成为一个关键问题。EasyTouch插件就是...
通过这个教程,开发者可以深入了解如何在Unity中集成TUIO,实现多点触控、手势识别以及与触摸屏设备的互动。 TUIO是基于OSC(Open Sound Control)协议的扩展,主要用在多点触摸和交互式表面的通信中。它允许Unity...
此外,插件支持多点触控,可以实现更复杂的交互模式,如双指旋转、缩放等。 五、性能优化 考虑到移动设备的资源限制,Easy Touch 3.1 在设计时注重性能优化。它尽可能减少CPU和GPU的使用,确保在不影响游戏流畅度的...
4. **多点触控支持**:支持同时处理多个触摸点,这意味着可以实现如旋转、缩放等复杂的手势操作。 5. **易用性**:UnityEasyTouch5提供了许多预制的UI元素和脚本示例,使得初学者也能快速上手。 6. **兼容性**:...
1. **多点触控支持**:该插件能够处理同时发生的多个触摸事件,这对于创建复杂的手势控制非常有用,比如双指缩放、旋转和滑动。 2. **虚拟控制器**:提供了一套完整的虚拟游戏手柄解决方案,包括方向键、动作按钮等...
它提供了一系列预定义的触摸手势,如单击、双击、滑动、捏合等,让开发者能够轻松地为游戏添加多点触控功能,增强游戏的交互性。 5. **DOTween**: DOTween是一款高效的动画插件,能够简化Unity中的动画制作。它支持...
在Unity引擎中,模型控制是游戏开发中的常见需求,它涉及到场景对象的交互与操作,使得用户能够通过输入设备如鼠标、触摸屏等对3D模型进行旋转、移动和缩放。本文将深入探讨如何使用C#脚本来实现这一功能。 首先,...
它使得在Unity项目中添加多点触控支持变得简单,无需编写大量的自定义代码。开发者可以利用这些手势来实现更丰富的用户体验,例如在游戏中的导航、操作对象或者进行用户界面交互。 "readme.txt"文件通常是提供关于...
"Easy Touch 4" 是一个专门针对Unity3D游戏引擎设计的交互控制工具包,它提供了先进的触摸屏操控方案,让玩家在移动设备上能够轻松地进行游戏操作。这个工具包的核心是v4.3.0版本的`.unitypackage`文件,这是一种...
1. **多点触控支持**:此插件支持多点触控功能,这意味着用户可以同时使用多个手指进行操作,如缩放、旋转或拖动,这在移动游戏和应用中尤为实用。 2. **手势识别**:通过内置的手势识别系统,开发者可以轻松添加...
TUIO协议则是一种用于多点触控和运动跟踪的开放标准,它允许用户通过触摸屏、投影表面或其他输入设备与计算机进行交互。 在Unity中集成TUIOSimulator-1.2,开发者可以模拟多点触摸事件,如点击、拖动、缩放和旋转等...
其中,"Easy Touch"是一款专为Unity3D设计的触屏检测插件,它极大地简化了在Unity中实现触摸操作的过程,让开发者能够更专注于游戏的创意和逻辑,而非底层的触摸事件处理。 Easy Touch的主要功能在于提供了一个直观...