0

私は Unity が初めてで、いくつかのチュートリアルを見て読んだ後、単純な 2D プラットフォーマーのようなゲームを作ろうとしています。このゲームでは、敵とプレイヤーの両方が異なるプラットフォームにジャンプし、古い SnowBros ゲームのように移動できます。

私が直面している問題は、敵の動きのプログラミングに関連しています。私のゲームにはいくつかのタイプの敵がいますが、一般的には 2 つのタイプがあります。1 つはプラットフォームからジャンプできるタイプ、もう 1 つはプラットフォームの長さまでしか歩けないタイプで、1 秒待ってから反転して後方に歩きます。つまり、彼らはプラットフォームから降りません。今、これは私が問題を抱えている問題です。基礎となる現在のプラットフォームの長さを計算する方法が見つからないようです。問題を回避するために collider.bound.min.x と max.x を使用することを考えましたが、問題は、スクリプトを取得してからそれを実行せずに現在のプラットフォームのコライダーに到達する簡単な方法を見つけられないように見えることです.

さまざまなサイズの多くのプラットフォームが存在し、各プラットフォームは他のプラットフォームのプレハブで構成されているため、プラットフォーム スクリプトを使用してそれをトラバースすることは、実行可能なソリューションとは思えません。

4

2 に答える 2

0

そうですね、プラットフォームのプレハブがあり、それらのプレハブに最初と最後にコライダーを配置してほしいと思います。レイヤーとタグを指定して、エネミーだけがコライダーを検出できるようにし、エネミー スクリプトから衝突時のタグを検出して操作することができます。

まず、[編集] -> [プロジェクト設定] -> [タグとレイヤー] を開いてレイヤーを作成します。2 つのレイヤーを作成する

タグとレイヤー

敵と敵コライダーのレイヤーを作成し、[編集] -> [プロジェクト設定] -> [Physics2D] に移動します。EnemyCollider が敵のみと衝突するように衝突マトリックスを設定します。

衝突マトリックス

プレハブは次のようになります。

プラットホーム

これがお役に立てば幸いです。

于 2015-12-29T08:31:28.283 に答える