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触屏操作对象运动的更多相关文章

  1. WPF Multi-Touch 开发:高级触屏操作(Manipulation)

    原文 WPF Multi-Touch 开发:高级触屏操作(Manipulation) 在上一篇中我们对基础触控操作有了初步了解,本篇将继续介绍触碰控制的高级操作(Manipulation),在高级操作 ...

  2. WPF Multi-Touch 开发:基础触屏操作(Raw Touch)

    原文 WPF Multi-Touch 开发:基础触屏操作(Raw Touch) 多点触控(Multi-Touch)就是通过与触屏设备的接触达到人与应用程序交互的操作过程.例如,生活中经常使用的触屏手机 ...

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

    unity3d 触屏多点触控(旋转与缩放) /*Touch OrbitProgrammed by: Randal J. Phillips (Caliber Mengsk)Original Creati ...

  4. 使用C#开发Metro 风格应用的路线图 -- 触屏操作

    原文 http://www.cnblogs.com/icuit/archive/2012/05/01/2478312.html win8支持多点触摸技术,而我们在屏幕上所做的各种操作,也最终转换为输入 ...

  5. 基于appium的模拟单点或多点触屏操作

    一.单点触控 TouchAction类:将一系列的动作放在一个链条中,然后将该链条传递给服务器,服务器接受该链条后,解析各个动作,逐个执行,TouchAction类提供了以下几种方法: 短按:pres ...

  6. Appium常用操作之「微信滑屏、触屏操作」

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.滑屏操作 1.访问之后,马上就滑屏可以吗? 2.连续实现 2 次滑屏 3.代码 二.模拟触屏 ...

  7. windows7触屏操作API

    每当用户触摸触敏式 Windows 7 设备时,Windows 7 多点触控平台都会向您的应用程序发送手势消息 WM_GESTURE.这是现成的免费行为,如果您希望停止接收此类消息,则需要选择退出. ...

  8. window7 触屏操作相关

    一.体系概述 1.Windows Touch Input 和 Gestures消息 Windows Touch消息特性 通过在执行期间的监听和解释来使能.下面的示例展示了Windows7 上消息是怎么 ...

  9. 贪吃蛇大作战canvas实现(手机触屏操作)--地图逻辑

    //html部分 <!DOCTYPE html><html><head lang="en"> <meta charset="UT ...

随机推荐

  1. 使用<a>标签,链接到另一个页面

    使用<a>标签可实现超链接,它在网页制作中可以说是无处不在,只要有链接的地方,就会有这个标签. 语法: <a href="目标网址" title="鼠标 ...

  2. entity framework 动态条件

    entity framework 动态条件 问题:在实际编码过程中,根据不同的选择情况,会需要按照不同的条件查询数据集 如:状态confirmStatus ,如果为空的时候,查询全部,如果有具体值的时 ...

  3. [转载]C++中 引用&与取地址&的区别

    一个是用来传值的 一个是用来获取首地址的 &(引用)==>出现在变量声明语句中位于变量左边时,表示声明的是引用.     例如: int &rf; // 声明一个int型的引用r ...

  4. Bootstrap中的 Typeahead 组件

    Bootstrap 中的 Typeahead 组件其实就是嵌入到其中的typeahead.js插件,可以完成输入框的自动匹配功能,在通过一些人工的调整基本可以胜任所有的匹配功能和场景,下面介绍下简单的 ...

  5. get_magic_quotes_gpc() 内置函数

    get_magic_quotes_gpc()函数 在PHP中是内置的函数,这个函数的作用就是得到php.ini设置中magic_quotes_gpc选项的值. 当magic_quotes_gpc=On ...

  6. MongoDB-性能优化之索引

    首先看一个实例 >;i<;i++){ db.indexdemo.insert({),"create":new Date});} WriteResult({ }) > ...

  7. C++学习笔记7——模板

    函数模板: #include <iostream> using namespace std; template <typename T> T max(const T & ...

  8. ARM内核和架构都是什么意思,它们到底是什么关系?

    ARM产品越来越丰富,命名也越来越多.很多朋友提问: ARM内核和架构都是什么意思?内核和架构的关系是什么?比如ARMv7架构,这个架构指的是什么?小编选出了几个精彩回答!希望对嵌友们在选择设计电路时 ...

  9. C++ Primer chap7

    /* 第七章7.1: */ //#include<iostream> //#include<string> //using std::cin; //using std::cou ...

  10. Java中堆内存(heap)和栈内存(stack)的区别

    在Java代码中,常常会使用到这样的类的声明实例化: Person per = new Person(); //这其实是包含了两个步骤,声明和实例化 Person per = null; //声明一个 ...