unity3d触屏操作对象运动
using UnityEngine;
using System.Collections; public class robot : MonoBehaviour { private GameObject myRobot;
private Camera carmera; // Use this for initialization
void Start () {
myRobot = GameObject.Find("robot");
//carmera = Camera.main;
//第二种方式去获取Camera
//carmera = GameObject.Find("Main Camera").GetComponent<Camera>(); Input.multiTouchEnabled = true;
} // Update is called once per frame
void Update () {
handInput();
} void handInput() {
#if !UNITY_EDITOR && ( UNITY_IOS || UNITY_ANDROID )
mobileInput();
#else
if (Input.GetKey(KeyCode.UpArrow)) {
myRobot.transform.Translate(Vector3.forward * Time.deltaTime);
}
if (Input.GetKey(KeyCode.DownArrow)) {
myRobot.transform.Translate(-Vector3.forward * Time.deltaTime);
}
if (Input.GetKey(KeyCode.LeftArrow)) {
myRobot.transform.Translate(Vector3.left * Time.deltaTime);
}
if (Input.GetKey(KeyCode.RightArrow)) {
myRobot.transform.Translate(Vector3.right * Time.deltaTime);
}
// float x = carmera.WorldToScreenPoint(myRobot.transform.position).x;
// Debug.Log("x = " + x);
#endif
} void mobileInput() {
if (Input.touchCount == 1) { if (Input.touches[0].phase == TouchPhase.Moved){
float x = Input.touches[0].position.x;
float y = Input.touches[0].position.y;
if (x > carmera.WorldToScreenPoint(myRobot.transform.position).x) {
myRobot.transform.Translate(Vector3.right * Time.deltaTime);
} else if (x < carmera.WorldToScreenPoint(myRobot.transform.position).x) {
myRobot.transform.Translate(-Vector3.right * Time.deltaTime);
} if (y > carmera.WorldToScreenPoint(myRobot.transform.position).y) {
myRobot.transform.Translate(Vector3.forward * Time.deltaTime);
} else if (y < carmera.WorldToScreenPoint(myRobot.transform.position).y) {
myRobot.transform.Translate(-Vector3.forward * Time.deltaTime);
}
}
}
} }
1. 两种获取Camera方式。
2. 手机触屏操作,需要进行世界坐标转屏幕坐标。
unity3d触屏操作对象运动的更多相关文章
- WPF Multi-Touch 开发:高级触屏操作(Manipulation)
原文 WPF Multi-Touch 开发:高级触屏操作(Manipulation) 在上一篇中我们对基础触控操作有了初步了解,本篇将继续介绍触碰控制的高级操作(Manipulation),在高级操作 ...
- WPF Multi-Touch 开发:基础触屏操作(Raw Touch)
原文 WPF Multi-Touch 开发:基础触屏操作(Raw Touch) 多点触控(Multi-Touch)就是通过与触屏设备的接触达到人与应用程序交互的操作过程.例如,生活中经常使用的触屏手机 ...
- unity3d 触屏多点触控(旋转与缩放)
unity3d 触屏多点触控(旋转与缩放) /*Touch OrbitProgrammed by: Randal J. Phillips (Caliber Mengsk)Original Creati ...
- 使用C#开发Metro 风格应用的路线图 -- 触屏操作
原文 http://www.cnblogs.com/icuit/archive/2012/05/01/2478312.html win8支持多点触摸技术,而我们在屏幕上所做的各种操作,也最终转换为输入 ...
- 基于appium的模拟单点或多点触屏操作
一.单点触控 TouchAction类:将一系列的动作放在一个链条中,然后将该链条传递给服务器,服务器接受该链条后,解析各个动作,逐个执行,TouchAction类提供了以下几种方法: 短按:pres ...
- Appium常用操作之「微信滑屏、触屏操作」
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.滑屏操作 1.访问之后,马上就滑屏可以吗? 2.连续实现 2 次滑屏 3.代码 二.模拟触屏 ...
- windows7触屏操作API
每当用户触摸触敏式 Windows 7 设备时,Windows 7 多点触控平台都会向您的应用程序发送手势消息 WM_GESTURE.这是现成的免费行为,如果您希望停止接收此类消息,则需要选择退出. ...
- window7 触屏操作相关
一.体系概述 1.Windows Touch Input 和 Gestures消息 Windows Touch消息特性 通过在执行期间的监听和解释来使能.下面的示例展示了Windows7 上消息是怎么 ...
- 贪吃蛇大作战canvas实现(手机触屏操作)--地图逻辑
//html部分 <!DOCTYPE html><html><head lang="en"> <meta charset="UT ...
随机推荐
- ASP.NET菜鸟之路之实现新闻列表增删改
背景 我是一个ASP.NET菜鸟,暂时开始学习ASP.NET,在此记录下我个人敲的代码,没有多少参考价值,请看到的盆友们为我点个赞支持我一下,多谢了. 网站介绍 根据视频的例子修改的方法,其中数据不经 ...
- cocos2d-x 实现粒子飞行特效
效果图 说明 实现效果: 按下鼠标并且移动, 所到之处产生光圈 光圈会以窗口中心为终点, 并且会偏移自身角度对准终点, 然后持续飞行, 直到终点. 附件 下载源码, 请猛击这里!
- ERROR:the server has either erred or is incapable of performing the requested operation
openstack中,有时会经常出现这种错误,原因无二,一是安全组没有设置正确,二是openstack中网络配置会有些问题或者是相关的服务没有启动. 解决方法:1.安全组问题在nova.conf和ne ...
- 03_RHEL7.1去掉注册提示
# rpm –qa|grep subscription-manager 出现类似下面的代码: subscription-manager-firstboot-1.13.22-1.el7.x86_64 s ...
- Unity扩展编辑器--类型1:Editor Windows
Extending the Editor Unity允许你使用自己定制的inspectors和Editor Windows扩展编辑器,并且你可以使用定制的Property Drawers定义属性集在i ...
- function的粗浅理解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 信号量 sem_t 进程同步
sem_t分为有名和无名.有名的sem_t通过sem_open来创建, 而无名的sem_t通过sem_init的初始化. 用有名的sem_t来进程间同步是件很容易的事情,百度上一搜很多想相关的例子. ...
- 如何做好PPT?
- cf B. I.O.U.
http://codeforces.com/contest/376/problem/B #include <cstdio> #include <cstring> #includ ...
- Black Box
http://poj.org/problem?id=1442 #include<cstdio> #include<algorithm> #include<queue> ...