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. Sql Server使用技巧

    1.修改表的字段时,提示不能更改: 工具>选项>设计器>取消 阻止保存要求重新创建表的更改 2.更改选择多少行,编辑多少行: 工具>选项>Sql Server对象资源管理 ...

  2. JQUERY1.9学习笔记 之内容过滤器(三) has选择器

    描述:选择至少包含一个元素,匹配指定的标签的标签.jQuery( ":has(selector)" ) 例:给所有的div添加一个类"test",在他们中有一个 ...

  3. uva 580 危险的组合(排列组合)

    Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Descript ...

  4. HTML 表格、区块、其他常用控件

    1. HTML 表格 主要关键字: table:表格: table border 属性:定义边框 -- <table border="1">: caption:表名: ...

  5. Altera quartus II遇到的问题

    编译时提示: Warning (13024): Output pins are stuck at VCC or GND Warning (13410): Pin "SCLK" is ...

  6. 关于手机"内存"的解答

    关于手机"内存"的解答 内存小/少 手机内存在手机出厂的时候就已经固定了,其总量无法调整,不能像电脑一样加内存条.所以想提升可用内存,除了经常清理系统,或者把不是必须的应用移到SD ...

  7. Installshield更新时,新加dll未拷贝至安装目录问题完美解决【原创】

    最近在发现在开发过程中新增的目录或文件(特别是dll\ocx\exe等二进制文件),在升级安装时拷贝失败. 经过一周的研究,完美解决办法: 对于新增的文件或目录,放到一个新的component中,并且 ...

  8. ImportError: No module named matlab

    这个matlab已经改名为pylab了,你可以运行: from pylab import *

  9. cf B. Making Sequences is Fun

    http://codeforces.com/contest/373/problem/B 用二分枚举长度就可以. #include <cstdio> #include <cstring ...

  10. library cache lock

    SESSION 34 执行存储过程: SESSION 43 编译存储过程: SESSION 25 删除存储过程: 1.查询查看library cache lock等待事件的相关会话 SQL> s ...