u3d响应点击事件

2024-05-04 05:18
文章标签 事件 响应 点击 u3d

本文主要是介绍u3d响应点击事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://www.cnblogs.com/kenzi/p/3739517.html

25.Unity3D手机中Input类touch详解-Unity触屏事件解析到底(Twisted Fate)

首先贴一下Unity支持的模型文件类型,以前没有收集过。

Unity支持两种类型的3D文件格式:

1.  通用的“出口型”3D文件

.fbx.dae.3ds.dxf.obj等文件格式。

2.  3D软件专用的3D文件格式

Max, Maya, Blender,Cinema4D, Modo, Lightwave & Cheetah3D 等软件所支持的格式,.MAX, .MB, .MA等等。

 

 

Unity3D手机中Input类touch详解:

1.Input.touchCount 触摸随之增长,一秒50次增量。

2.Input.GetTouch(0).phase==TouchPhase.Moved 手指滑动中最后一帧滑动的状态是运动的。

3.TouchPhase  触摸的几个状态。

4.Touch.deltaPosition 增量位置(Input.GetTouch(0).deltaPosition)最后一帧滑动的值,只返回xy轴坐标,也可用vector3(z轴为0),所以一般用vector2接收。

复制代码
 1 static var aa:int;
 2 function Update () {
 3 if(Input.touchCount>0)
 4 {
 5 print(Input.touchCount);
 6 }
 7 }
 8 function OnGUI()
 9 {
10 GUI.Label(Rect(34,34,34,34),"sdff");
11 }
复制代码

touchCount指的是触摸帧的数量。要注意的是:touch事件 只能在模拟器或者真机上运行(已测试通过),大约一秒钟touch不放。touchCount+50次左右。2.Input.touches 触摸列表。

复制代码
// Prints number of fingers touching the screen
//输出触摸在屏幕上的手指数量
function Update () {
var fingerCount = 0;
for (var touch : Touch in Input.touches) {
if (touch.phase != TouchPhase.Ended && touch.phase != TouchPhase.Canceled)
fingerCount++;
}
if (fingerCount > 0)
print ("User has " + fingerCount + " finger(s) touching the screen");
}
复制代码

3.让cube随着touch 移动代码:

复制代码
static var count:int; //定义touchCount数
var particle_:GameObject;//定义存放cube对象
var touchposition:Vector3; //存储移动三维坐标值
function Update () {
if(Input.touchCount>0)
{
count+=Input.touchCount;}
if((Input.touchCount>0&&Input.GetTouch(0).phase==TouchPhase.Moved)) //[color=Red]如果点击手指touch了  并且手指touch的状态为移动的[/color]
{
touchposition=Input.GetTouch(0).deltaPosition;  //[color=Red]获取手指touch最后一帧移动的xy轴距离[/color]
particle_.transform.Translate(touchposition.x*0.01,touchposition.y*0.01,0);//[color=Red]移动这个距离[/color]
}}
function OnGUI()
{
GUI.Label(Rect(10,10,100,30),"cishu:"+count.ToString());
GUI.Label(Rect(10,50,100,30),touchposition.ToString());
}
复制代码

 

 移动物体:

复制代码
using UnityEngine;
using System.Collections;public class example : MonoBehaviour {public float speed = 0.1F;void Update() {if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) {Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;transform.Translate(-touchDeltaPosition.x * speed, -touchDeltaPosition.y * speed, 0);}}
}
复制代码

点击碰撞克隆:

复制代码
using UnityEngine;
using System.Collections;public class example : MonoBehaviour {public GameObject projectile;void Update() {int i = 0;while (i < Input.touchCount) {if (Input.GetTouch(i).phase == TouchPhase.Began)clone = Instantiate(projectile, transform.position, transform.rotation) as GameObject;++i;}}
}
复制代码

点击屏幕,射线法发射一个粒子

复制代码
using UnityEngine;
using System.Collections;public class example : MonoBehaviour {public GameObject particle;void Update() {int i = 0;while (i < Input.touchCount) {if (Input.GetTouch(i).phase == TouchPhase.Began) {Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);if (Physics.Raycast(ray))Instantiate(particle, transform.position, transform.rotation) as GameObject;}++i;}}
}





using UnityEngine;
using System.Collections;public class TestTouch : MonoBehaviour {static int clickTimes=0;// Use this for initializationvoid Start () {Debug.Log ( " you touch me please .... ");}// Update is called once per framevoid Update () {if (Input.touchCount > 0) {clickTimes++;//Debug.Log ( " \n \n you touch me please .... the time is  " + clickTimes);if (Input.GetTouch (0).phase ==TouchPhase.Began){Debug.Log (" !!!!! touch begin  ----------  ");}if (Input.GetTouch (0).phase == TouchPhase.Stationary ) {return;//Debug.Log (" !!!!! touch remove  ----------  ");}if (Input.GetTouch (0).phase == TouchPhase.Moved) {//	Debug.Log (" !!!!! touch remove  ----------  ");}if (Input.GetTouch (0).phase == TouchPhase.Ended) {Debug.Log (" !!!!! touch end  ----------  ");}if (Input.GetTouch (0).phase == TouchPhase.Canceled) {Debug.Log (" !!!!! touch canceled  ----------  ");}print (Input.touchCount);Vector2 v2 = new Vector2 (Input.GetTouch (0).position.x, Input.GetTouch(0).position.y);//Debug.Log (" You touch me  x:= " + v2.x + " y:= " + v2.y );}}
}




这篇关于u3d响应点击事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958408

相关文章

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

spring @EventListener 事件与监听的示例详解

《spring@EventListener事件与监听的示例详解》本文介绍了自定义Spring事件和监听器的方法,包括如何发布事件、监听事件以及如何处理异步事件,通过示例代码和日志,展示了事件的顺序... 目录1、自定义Application Event2、自定义监听3、测试4、源代码5、其他5.1 顺序执行

springMVC返回Http响应的实现

《springMVC返回Http响应的实现》本文主要介绍了在SpringBoot中使用@Controller、@ResponseBody和@RestController注解进行HTTP响应返回的方法,... 目录一、返回页面二、@Controller和@ResponseBody与RestController

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

Python中的异步:async 和 await以及操作中的事件循环、回调和异常

《Python中的异步:async和await以及操作中的事件循环、回调和异常》在现代编程中,异步操作在处理I/O密集型任务时,可以显著提高程序的性能和响应速度,Python提供了asyn... 目录引言什么是异步操作?python 中的异步编程基础async 和 await 关键字asyncio 模块理论