【发布时间】:2017-03-23 02:51:44
【问题描述】:
我对统一很陌生,我正在尝试做一个纸牌游戏,我遇到了坐标问题。我正在尝试获取触摸的位置并使精灵移动到屏幕中的特定位置。这是我在 c# 中的解决方法脚本:
using UnityEngine;
using System.Collections;
public class CardMovement : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
Rect recta = new Rect (-4.71f,-3.98f,4.52f,6.8f);
Touch To = new Touch ();
Camera C = GetComponent<Camera>();
Vector3 p = new Vector3 ();
p = C.ScreenToWorldPoint (To.position);
if (recta.Contains(p)== true){
transform.Translate(0.79f,-1.13f,0f);
}
}
}
问题是我不能让它移动到那个特定的位置。是因为坐标不匹配吗?有没有办法直接获取精灵的坐标而不输入它们?谢谢帮助;)
【问题讨论】:
-
你想达到什么目的?触摸卡片,然后它会移动到屏幕上的特定点?我不确定您是如何尝试完成这项工作的,因为您可以使用新的 UI 系统、Sprites、Planes,一切都适用于 2D 透视图,因此如果您再澄清一点,这将非常有帮助。据我所知,您正在尝试使用 3D 视图来翻译卡片。我建议您查看此link 开始时有点吵,所以要小心
-
您在寻找对象的位置?最基本的是 gameObject.transform.position;没有?
-
对不起,回答晚了,我想做的是检测用户何时触摸精灵所在的区域,并响应它会移动到我想要的特定位置。
-
@Salvador 我使用了 3D 维度,因为 Camera.screenTOViewportpoint 方法建议使用 3D 矢量。感谢帮助
-
@Andromelus 我会试试的。谢谢你的帮助