2017-12-14 12 views
0

私はこのシーンをチェス盤と一体としています。各図とチェスボードは、アセットストアからダウンロードされたモデルです。だから私は四角形をクリックして図をクリックしてチェス盤のこの四角形に図形を移動させたいと思っています。私はどのように私のゲームオブジェクトでこれを行うことができますか?ユーザーがクリックした四角形の座標を定義する必要がありますか?ユーザーがクリックした場所をどのように追跡できますか?私は正方形の私で定義されたに数字を移動するための唯一のそのようなスクリプトを持っていた enter image description here他のゲームオブジェクト上のゲームオブジェクトを移動するUnity3D

私のシーンはこのようになります。ルークのための例:

void OnMouseDown() 
{ 
    transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z + 71); 
} 
+1

これを実現する方法はたくさんありますが、A0の中心が世界起源に位置するように、feがあなたの座標を計算しやすいような方法でチェス盤を設定することが最も役に立つでしょう。フィールドのサイズは(1,1)です。コライダーまたは飛行機のいずれかに対してレイキャストして、次の整数( 'Mathf.RoundToInt(float、float)')に丸めて個々のフィールド座標を得ることができます。 ofcあなたはまた、任意のサイズを持つことができます、ちょっとちょっと計算がもっと複​​雑です(しかし、非常に基本的な数学で完全に実行可能です)。 – yes

+0

ゲームのループに関しては、最初に移動する部分を選んでそれを移動する正方形を選択します。実際にチェスをプレイする方法に似ていますが、選択したピースの動きを表示する機能もあります(動きルールやその周りの他の部分に基づいて)。 – Serlite

+0

@Serlite素敵なアイデア!どのようにユーザーに可能な動きを提案できますか?私は四角形の色や照明を変える方法があるのでしょうか? – Cassie

答えて

1

ではなく、いくつかのグリッドを定義する、または最寄りの整数に丸め、あなたは、単にすべての広場のコライダーを持つことができます。

これらの四角形のそれぞれは、正方形の衝突層の一部です。それで、あなたはすべての部分について同じことを行い、平らなレイヤーと交わるようにピースレイヤーができるようにします(テーブルには入りません)。

次に、簡単な部分があります。ユーザーが移動しようとしている部分を特定し、2番目の部分を移動しようとしている部分を特定する(そしてその部分を四角形の中央に移動する)ようにします。

This questionオブジェクトの選択方法を理解するのに役立ちます。

関連する問題