2016-05-30 13 views
0

私は学校プロジェクトのためにゲームを作っています。私はブロックが崩れ落ちるのを望むこの部分にこだわっています。プレイヤーがブロックに触れ、次のブロックに移動すると、破壊されます。とても困っていて、援助が大好きです。 私が目指してるものの概念はここで見ることができます。各ブロックにはhttp://www.coolmath-games.com/0-b-cubedプレイヤータッチの落下ブロック - Unity(C#)

+0

実際にあなたの問題は何ですか?ウィックキューブをチェックするプレーヤーが立っているか、ベースキューブを落としていますか? –

+0

私はブロックがプレーヤーによって触れられたかどうかを検出する方法が本当ではない、そしてそれが落ちるためにそのブロックを残しているならば。 – Jarrod

+0

ブロックの添付スクリプトのOnMouseDownは間違いなく開始になります。 –

答えて

0

を、あなたはOnCollisionExit()方法(reference)を含むスクリプトを添付する必要があります。衝突パラメータを渡して(参照参照)、衝突情報を使用して、衝突者を離れるオブジェクトがプレーヤであることを確認します(たとえば、インスペクタにプレーヤータグを付け、コリジョンのタグを確認します)。

この方法では、ブロックを倒すためのコードを配置します。

オブジェクトにコライダーが追加されているかどうかを確認してください。問題が発生した場合は、いくつかのコードを返信してください。私はあなたに連絡します。

0

実際にここで衝突を検出する必要はありません。それは必要ではない。ベースの立方体の位置とx、z平面のプレイヤー立方体の位置を比較するだけです(プレイヤーの立方体は基本立方体の上にあるので、Y軸に違いがあります)。コリジョンは必要ありません。 playerキューブが他のものをホバーする(position check)かどうかをチェックし、次の動きをplayercubeよりも強くしてbasecubeにつけて、1秒後にそれを破壊する、すべての基本キューブにスクリプトを添付します。

EDIT

コードは次のようになります:)シンプル。多かれ少なかれ。

GameObject playerCube; //this is reference to Player object 
bool playerEnter = false; 
bool playerLeft = false; 


void Start() 
{ 
    playerCube = Gameoject.Find("PlayerCube"); // here you put the name of your player object as a string. Exactly as it is in the hierarchy 
} 

void Update() 
{ 
if(playerCube.transform.position.x == transform.position.x && playerCube.transform.position.z == transform.position.z) 
{ 
     playerEnter = true; // this checks if player stepped on the cube 
} 
if((playerCube.transform.position.x != transform.position.x || playerCube.transform.position.z != transform.position.z) && playerEnter == true && playerLeft == false) //checks if player left the cube 
{ 
playerLeft = true; // we do this so the code below is executed only once 
    gameObject.AddComponent<Rigidbody>(); // ads rigidbody to your basecube 
    Destroy(gameObject, 1.0f); //destroys baseCube after one second 
} 

多かれ少なかれそれを行うべきだと思います。最後の試合では、おそらくあなたの仕事にコルーチンを使用するでしょう。また、キューブがすでに破壊されているかどうかを確認する方法を考える必要があります。プレイヤーが次のキューブを踏むことができるかどうかをゲームが検出します。

編集2 あなたの階層、コード、およびあなたが正確にしたいことを知っていないとうまくいかないかを伝えるのは難しいです。このコードを勉強してください - あなたのニーズに若干の調整を加えた後に動作します

+0

そのコードはどのように見えますか?どこから始めるべきかわからない。 – Jarrod

+0

私はこのコードを試しましたが、うまくいかないようです!プレーヤーのポジションは、フロアの(立方体)ポジションと同じであることをどのように認識しますか? – Jarrod

+0

if()文に間違いがあります。今、正確な位置を確認しています。修正する –