2017-03-14 17 views
1

私は本当に単一性に新しく、私はカードゲームをしようとしている、そして私は座標の問題に直面する。私はタッチの位置を取得し、画面内の特定の位置にスプライトを移動させようとしています。ここに私の問題を回避するスクリプトは、C#である:どのようにしてユニティ2Dのスプライトの位置が自動的に

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); 

    } 


} 
} 

問題は、私はそれがその特定の位置に移動させることはできませんので、一致していない座標のそれを.isということでしょうか?助けてくれてありがとう;)

+0

達成したいことは何ですか?カードをタッチすると、画面の特定のポイントに移動しますか? 新しいUIシステム、スプライト、プレーンを使うことができるので、どのようにこれをやろうとしているのか分かりません。すべてのことが2Dのパースペクティブに機能するので、もう少し明確にすれば本当に役立ちます。私が見る限りでは、3Dビューを使用してカードを翻訳しようとしています。 この[リンク](https://www.youtube.com/watch?v=5cdNMpsIkm4)をご覧になることをお勧めします。開始時に少し騒がしいので、ご注意ください –

+0

オブジェクトの位置を探していますか?最も基本的なのはgameObject.transform.positionです。いいえ? – Andromelus

+0

申し訳ありませんが、私がやりたいことは、スプライトがある領域にユーザーが触れたときにそれを検出し、それに応じて特定の位置に移動することです。 –

答えて

0

あなたがしたいのは、ユーザーがサーフェス/ゾーンをタップしている位置を検出している場合、このオブジェクトはコライダーがいれば、レイキャストを使用してコリジョンがどこにあるかを検出する必要があります。彼らは団結からnavmeshを使用しますが、あなたがする必要はありません。この例では

Moving an Agent to a Position Clicked by the Mouse

、あなたが探している情報は、hit.pointに

0

である私は、カードを移動するために管理私が望んでいた位置(正確ではない)と私は自分自身を構築した別のコードを使用した、あなたの命題は私が理解しなかったので使用しなかったか、3Dスクリプトを使用していると思います。私のコードの更新版:

using UnityEngine; 
using System.Collections; 

public class CardMovement : MonoBehaviour { 
public RectTransform rectangle; 

// Use this for initialization 
void Start() { 

    rectangle = GetComponent<RectTransform>(); 


} 

// Update is called once per frame 
void Update() { 

    if (rectangle.rect.Contains (Input.GetTouch (0).deltaPosition)){ 

     Vector2 V = new Vector2 (0.125f, 0.125f); 

     transform.position = V; 


    } 


} 
} 

は、今私が直面する主な問題:私は(0.5で考えると、それがあるべきながら

  • (0.125,0.125)私は、2Dベクトルに使用私に画面中央の場所を与えました、0.5)ベクトル(最後のベクトルは私にスクリーン外のカードの位置を与えました)。これらの座標の違いは何ですか:私はCamera.ScreenToWorldpointまたはCamera.ScreenToViewportpointを使用する場合
  • カードは、NOWタッチ(私はそれを座標の問題を推測)

MAIN QUESTIONに応答しなかった世界座標を、画面座標およびビューポート座標を含む。私は統一マニュアルで説明を見つけませんでした。

ありがとうございました:)。

関連する問題