2017-09-20 4 views
0

キャラクターはエレベーターに入ることができますが、問題は彼が横からも後ろにも壁を歩くことができるということです。キャラクターがオブジェクトを通り抜けないようにエレベーターにコライダーを追加するにはどうすればよいですか?

そして、もし私がボックスコライダーや他のコライダーを追加すると、キャラクターがエレベーターに入るのを防ぎます。それはミキサーで作られた私のエレベーターオブジェクトではありません。

Elevator

+1

はSOあなたはおそらくより見た目が統一フォーラム@答えを取得しているよ、プログラミングの質問です。メモリの一貫性からメッシュの衝突を起こさせて、それを調べることができます。それがうまくいかない場合は、ネイティブの形状と子からそれらをエレベータオブジェクトに一緒に送ることができます。 – George

答えて

2

メッシュコライダーの代わりにCompound Colliderを使用してください。

back、front、right、left、top、bottomと呼ばれる新しい空のGameObjectを作成してください。 それぞれにBox Colliderを添付してください。手作業でサイズを変更して、エレベーターのサイズに合わせてそれぞれのサイズを全面的に移動します。

これが完了したら、それを親の空のGameObjectに入れ、その親GameObjectをエレベーターGameObjectの下に置いて、コライダーがエレベーターで移動/回転するようにします。最後に、プレーヤーがエレベーターの中に入ることを許可したいときは、コードを介してフロントコライダーゲームオブジェクトを無効にするか、または移動させます。

下の画像は、個々のコライダーがどのように見えるかの例を示しており、最終的な外観:

enter image description here

1

これはプログラミングの問題ではないような質問のこれらの種類は、Unity Answersでオフに優れています。今後の質問にはそれを念頭に置いてください。

はユニティでプロジェクトファイル内のメッシュを検索し、しかし、あなたの質問に答えるためには、「コライダーを生成する」のチェックボックスがあります - 適用され、このボックスとプレスをご確認ください。 最後に、メッシュ付きGameObjectにMeshColliderコンポーネントを追加します。

モデルが正しく設定されている場合、メッシュコライダーは衝突のためにモデルを使用するようになります。

これに代わる方法として、キューブをコライダーで使用してコリジョンメッシュを自分で作成し、オブジェクトを同じオブジェクトに親にして持ち上げて移動する場合は、MeshRendererコンポーネントを無効にする彼らはレンダリングされません。

関連する問題