unity3D实现多点触碰

实现多点触碰是利用input这个类里面的方法实现的。

从edit-project settings-input就可以看到input能够得到的轴。

想要读取轴向可以使用Input.GetAxis方法获取下列默认轴: “Horizontal” 和“Vertical” 映射于控制杆、A、W、S、D和箭头键(方向键)。 “Mouse X” 和“Mouse Y” 映射于鼠标,“Fire1”, “Fire2” “Fire3”映射于键盘的Ctrl、Alt、Cmd键和鼠标中键或控制器的按钮

iOS和Android设备能够支持多点触控。你可以通过Input.touches属性集合访问在最近一帧中触摸在屏幕上的每一根手指的状态数据。

当设备移动时,它们的加速感应器硬件将报告它们在三维空间中沿着三个主轴的线性加速变化数据。你可以使用这些数据检测设备当前的移动方向(相对于地面)和突然间的方向改 变。

硬件沿着某感应一轴加速就会立即返回重力值。如果值为1.0代表沿着给定轴的方向+1g的重力加速度,如果值为-1.0代表-1g的重力加速度。如果你保持设备垂直(主页键在下方)在你正前方,那么X轴就是指向你右侧的方向,Y轴指向正上方,Z轴就是你所面向的方向。

你可以读取Input.acceleration属性获得设备的加速度信息。你也可以使用Input.deviceOrientation属性获取设备在三维空间中的方位偏移。检测方位变化在你想要制作游戏行为中会非常有用,当用户转动设备或拿着设备时它是不同的。

速度感应装置在每一帧中能够轮询多次,想访问上一帧的所有速度样本你可以读取Input.accelerationEvents属性集合。这在重组玩家动作中会非常有用

 1 using UnityEngine;using System.Collections;
 2 public class ExampleClass : MonoBehaviour {
 3 public GameObject particle;
 4  void Update() {
 5  for (var i = 0; i < Input.touchCount; ++i) {
 6             if (Input.GetTouch(i).phase == TouchPhase.Began) {                 // Construct a ray from the current touch coordinates
 7                 Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);
 8                 // Create a particle if hit
 9                 if (Physics.Raycast(ray))
10                     Instantiate(particle, transform.position, transform.rotation) as GameObject;
11             }
12        }
13    }
14 }
时间: 2024-11-05 22:46:03

unity3D实现多点触碰的相关文章

Android基础入门教程——3.4 TouchListener PK OnTouchEvent + 多点触碰

Android基础入门教程--3.4 TouchListener PK OnTouchEvent + 多点触碰 标签(空格分隔): Android基础入门教程 本节引言: 如题,本节给大家带来的是TouchListener与OnTouchEvent的比较,以及多点触碰的知识点! TouchListener是基于监听的,而OnTouchEvent则是基于回调的!下面通过两个简单的例子来加深 大家的理解! 1.基于监听的TouchListener 代码示例: 实现效果图: 实现代码: main.xm

9. Cocos2d-x 游戏编程 之 多点触碰

上一篇内容讲了 单点触碰,然后这篇接着讲 多点触碰.多点触碰就是说,多个手指同时在屏幕上操作,然后触发监听器,回调方法实现功能而已. 1.先了解这个代码如何在手机上调试.因为这个是关乎到多个手指触碰才能触发的监听器,所以说,在模拟器上实现不了手指的触碰.必须在真机上跑才行. 其实很简单,只要在项目中的 ios 这个文件夹中的 AppController.mm 文件里边的 - (BOOL)application:(UIApplication *)application didFinishLaunc

cocos2d-x之多点触碰初试

bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); auto listener=EventListenerTouchAllAtOnce::create(); listener->onTouchesBegan=[](std::vector<Touch*> ts,Event *e){

多点触碰实现图片的放大缩小

MainActivity package com.ce.duodian; import com.ce.view.MyView; import android.os.Bundle;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.view.Menu; public class MainActivity extends Acti

自定义圆形图片实现多点触控放大缩小和拖动

自定义imageview package com.bwie.view; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import androi

unity3d 触屏多点触控(旋转与缩放)

unity3d 触屏多点触控(旋转与缩放) /*Touch OrbitProgrammed by: Randal J. Phillips (Caliber Mengsk)Original Creation Date: 12/16/2011Last Updated:                   12/16/2011Desctiption: Simple orbit by one touch and drag, as well as pinch to zoom with two finger

【unity3D】单点和多点触控

[狗刨学习网] 总结: Input.touchCount获取当前的触摸点数目,若为1则是单点触控,大于1则是多点触控 点击事件用:Input.GetTouch(num).phase == TouchPhase.Began这样的格式 代码: using UnityEngine; using System.Collections; public class click2 : MonoBehaviour { //设置点击时显示的图片 public Texture2D img; void Start (

Android多点触控技术

1 简介 Android多点触控在本质上需要LCD驱动和程序本身设计上支持,目前市面上HTC.Motorola和Samsung等知名厂商只要使用电容屏触控原理的手机均可以支持多点触控Multitouch技术,对于网页缩放.手势操作上有更好的用户体验. 在Android平台上事件均使用了MotionEvent对象方式处理,比如开始触控时会触发ACTION_DOWN,而移动操作时为 ACTION_MOVE,最终放开手指时触发ACTION_UP事件.当然还有用户无规则的操作可能触发ACTION_CAN

关于android多点触控

最近项目需要一个多点触控缩放的功能.然后上网查了下资料 总结一下: 首先android sdk版本很重要,比如你在AndroidManifest.xml中指定android:minSdkVersion="4"  并且建工程的时候选的是android 2.2就表示你的应用兼容android1.6~android2.2 之间的版本.但是多点触控的API在1.6~~2,1~~,2,2~~三个版本中都是不一样的.比如android2.2中onTouchEvent(MotionEvent eve