[置顶] unity中点击屏幕2d图片的移动和旋转
2016-03-30 22:56
756 查看
点击屏幕让2d图片移动到点击的坐标时,我们要先将点击屏幕的坐标从屏幕坐标转换为世界坐标,让他们在同一坐标下进行位置的比较。
(一):我们首先将图片的格式改为
,然后将图片拖拽到场景中。
(二):将下列代码挂在(一)的图片上。
using UnityEngine;
using System.Collections;
public class Move : MonoBehaviour
{
private Vector3 screenPosition;//将物体从世界坐标转换为屏幕坐标
private Vector3 mousePositionOnScreen;//获取到点击屏幕的屏幕坐标
private Vector3 mousePositionInWorld;//将点击屏幕的屏幕坐标转换为世界坐标
void Update () {
screenPosition = Camera.main.WorldToScreenPoint(transform.position);
if (Input.GetMouseButtonDown(0))
{
mousePositionOnScreen = Input.mousePosition;
mousePositionOnScreen.z = screenPosition.z;
mousePositionInWorld = Camera.main.ScreenToWorldPoint(mousePositionOnScreen);
//根据X的位置来对物体进行旋转
if(transform.position.x< mousePositionInWorld.x)
{
//利用镜像原理
transform.localScale = new Vector3(1, 1, 1);
}
else
{
transform.localScale = new Vector3(-1, 1, 1);
}
}
transform.position = Vector3.Lerp(transform.position, mousePositionInWorld, Time.deltaTime * 3);
}
}
这样我们就实现了通过点击屏幕来控制2d图片的旋转和移动了
(一):我们首先将图片的格式改为
,然后将图片拖拽到场景中。
(二):将下列代码挂在(一)的图片上。
using UnityEngine;
using System.Collections;
public class Move : MonoBehaviour
{
private Vector3 screenPosition;//将物体从世界坐标转换为屏幕坐标
private Vector3 mousePositionOnScreen;//获取到点击屏幕的屏幕坐标
private Vector3 mousePositionInWorld;//将点击屏幕的屏幕坐标转换为世界坐标
void Update () {
screenPosition = Camera.main.WorldToScreenPoint(transform.position);
if (Input.GetMouseButtonDown(0))
{
mousePositionOnScreen = Input.mousePosition;
mousePositionOnScreen.z = screenPosition.z;
mousePositionInWorld = Camera.main.ScreenToWorldPoint(mousePositionOnScreen);
//根据X的位置来对物体进行旋转
if(transform.position.x< mousePositionInWorld.x)
{
//利用镜像原理
transform.localScale = new Vector3(1, 1, 1);
}
else
{
transform.localScale = new Vector3(-1, 1, 1);
}
}
transform.position = Vector3.Lerp(transform.position, mousePositionInWorld, Time.deltaTime * 3);
}
}
这样我们就实现了通过点击屏幕来控制2d图片的旋转和移动了
相关文章推荐
- [Unity热更新]tolua# & LuaFramework(二):打包工具
- unity3d的playmaker插件使用教程,三、对象出入触发,声音播放
- Unity3D内存管理——对象池(Object Pool)
- [Unity官方文档翻译]Importing Assets 如何向unity导入资源
- unity 面试题
- 深入理解IOC模式及Unity框架
- Unity3D热更新<三> Me-slua 框架
- (十)Unity5.0新特性------新UI系统实战
- unity源码解析Object
- Unity svn配置
- unity3d的playmaker插件使用教程,二、开关盒子
- 射线检测地表高度和世界坐标和屏幕坐标间的转换
- Unity ZTest 深度测试 & ZWrite 深度写入
- unity3d的playmaker插件使用教程,一、电灯开关
- unity3d中脚本生命周期(MonoBehaviour lifecycle)
- Unity依赖注入使用详解
- 用Unity的Projector制作基地范围效果
- 项目记录32--unity 导出dotween补充
- Unity5.x的GUIText被UI Text所取代--增加头文件UnityEngine.UI
- Unity3d游戏中自定义贝塞尔曲线编辑器[转]