問題タブ [unity3d-2dtools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
162 参照

c# - シーンを変更した後、非表示のオブジェクトが非表示にならなくなりました

Unity と C# は初めてなので、ご容赦ください。プレーヤーが自由に移動できるシーンがいくつかあり、そのうちの 1 つに、マウスをクリックしたときに非表示にするイメージ オブジェクトがあります。現在、それを非表示にするために使用する 1 つの imageobject にスクリプトを追加しましたrenderer.enabled = false;。プレーヤーがそのシーンに戻ると、それはもう隠れていません。これを行う正しい方法は何ですか?

//------編集部分-----------今は動作します:)

0 投票する
1 に答える
986 参照

c# - プレイヤーの死亡アニメーションが終了した後にバックグラウンド スクロールを停止する

こんにちは、2D エンドレス ランナーを作成しています。背景には 2 つのアニメーションがあります - Scroll と stopScroll

  1. 死のアニメーションを有効にする - これは起こっています
  2. タイマーを停止 - 停止すると、すべてのアニメーションが停止します
  3. バックグラウンドのスクロールを停止します - これは、死のアニメーションが終了する前に発生し、最初のフレームに戻る前に発生しますが、発生しています。キャラクターが死亡した場所に対して背景を停止したい。
  4. キャラクターを破壊する - これは起こっていますが、アニメーションが完了する前です。コルーチンを使用する必要があると思いますが、方法がわかりませんか?

助けてください!

提案された私の更新されたコードは次のとおりです

背景アニメーション 背景のスプライトを複製し、並べて配置しました。RHS スプライトは、階層内の LHS スプライトの子です。次に、LHS bg スプライト -> ウィンドウ -> アニメーションをクリックします。add curve を使用して bg を X 軸上で変換し、無限に動かします。

0 投票する
3 に答える
1217 参照

c# - 実行時にゲームオブジェクトを追加する

これはばかげた質問のように思えるかもしれませんが、私はそれにこだわっています。リスト ( List<GameObject>) に GameObjects があり、それらをシーン ランタイムに、できれば事前に定義された場所 (プレースホルダーなど) に追加したいと考えています。それを行う良い方法は何ですか?私はネットを検索してきましたが、これを解決するものは本当に見つかりません。これまでの私のコードは次のとおりです。

写真 (5) を所定の場所に配置するにはどうすればよいですか?

編集: 1 つの画像をプレースホルダー (透明な png) に配置できるようになりました。何らかの理由で z 値が至る所にあるため、強制的に -1f にする必要がありますが、それで問題ありません。他のシーンの画像をリストに追加すると、1 ~ 5 枚の画像が表示されます。プレースホルダーを別のリストまたは配列に入れる必要がありますか? 私はここで少し迷っています。

0 投票する
1 に答える
6505 参照

unity3d - リジッドボディ間のプッシュを避ける

Unity (ポケモン スタイル) の 2D ゲームに問題があり、ゲームtransform.positionオブジェクトの移動に使用しています。

プレイヤーと彼を追う敵がいます。すべて問題ありません。しかし、敵が衝突すると、互いに押し合い始めます

敵とプレイヤーが衝突したときに誰も押されないようにする必要があります。

  • 敵にキネマティックを使用しようとしましたが、プレイヤーはそれらを押すことができます。
  • プレイヤーに大量の質量を追加しようとしましたが、彼は敵を押すことができます.
  • とのコードで当たり判定を試みたのですOnCollisionが、敵の移動をキャンセルすると元に戻りません。

- - アップデート - -

衝突が必要で​​すが、それらの間をプッシュすることなく、問題を説明するビデオがあり ます https://www.youtube.com/watch?v=VkgnV1NOxlw

記録のために、私は A* パスファインディング スクリプト ( http://arongranberg.com/astar/ ) を使用しています。ここでは、敵がスクリプトを移動します。

- - アップデート - -

最後に、ターゲットが近づいて停止したときに、rigidbody2D.isKinematic プロパティを true に変更して、期待どおりの結果を取得します。

ここにビデオがあります https://www.youtube.com/watch?v=0Zm0idUU75s

そして敵の移動コード

0 投票する
0 に答える
94 参照

c# - ゲーム オブジェクトの rightHorizo​​ntalBound と同じタイプを取得する方法は? だから私はそれらの値を比較できますか?

私は持っているgameobject charTransform = GameObject.FindGameObjectWithTag ("Character");

そして、私はコードで世界の境界を取得しています rightHorizontalBound = camera.ViewportToWorldPoint (new Vector3 (1,0, camera.nearClipPlane)).x;

質問: と同じタイプのゲーム オブジェクトを取得するにはどうすればよいrightHorizontalBoundですか? だから私はそれらの値を比較できますか?

は としての WorldPointif(charTransform1.position.x >= rightHorizontalBound)ではないため、すべての悪いことが で発生します。charTransform1.position.xrightHorizontalBound

私が比較する機能が必要なので、キャラクターは右の境界線を通過できません。ここにコードがあります

0 投票する
3 に答える
10897 参照

unity3d - 複数のコライダーへの推奨アプローチ

おそらく非常にばかげたことで、私はいくつかの困難を抱えています。私は敵のゲームオブジェクトを持っており、それがどこにぶつかったか (衝突) に応じて、それが死ぬか、プレイが死ぬかのどちらかです。これを説明する最も簡単な方法は、例として古典的なスーパー マリオ ブラザーズゲームを使用することだと思います。

ご存知のように、プレイヤーが敵にぶつかると、敵の頭の上にジャンプしない限り、プレイヤーは負けます。その場合、敵は死ぬはずです。

コライダーを持つ敵

私の最初のアイデアは、ゲームオブジェクトに 2 つのコライダーを作成することでした。

  1. 青い境界線は BoxCollider2D を表します。これと衝突すると、プレイヤーが負けます (上から少し下にあることに注意してください)。
  2. 緑色の境界線は、子ゲーム オブジェクトの BoxCollider2D を表します。これと衝突すると、ゲーム オブジェクトが停止します。

以下は、私が使用したコードの簡略版です。

この種の方法は機能しますが、コライダー #1と衝突した直後にコライダー #2もトリガーされ、敵が破壊されている間、プレイヤーも負けます。

私は RigidBody2D の値をいじって、プレイヤーが上から敵に当たったときに 2 番目のコライダーに入らないようにしました。 )。

私は RayCasts を調べましたが、これは複雑すぎて、かなり些細なことのように見えます (プレーヤーの 4 つの側面と 4 つの頂点すべてに光線をキャストします - プレーヤーにボックス コライダーがあると仮定します)。

私が「今のところ」頼ったのは、私が不満を持っている単純なコード片を持つ単一のコライダーであり、常に機能するとは限りません。

私は現在 2D モードで作業していますが、3D モードの解決策 (私の質問には必要以上に複雑かもしれません) も検討されます。

みんなありがとう。

0 投票する
1 に答える
40 参照

unity3d - プレイヤー コントロールを追加すると重力が劇的に変化する

したがって、rigidbody2D を追加すると、重力は通常どおりに機能します。プレイヤー スプライトが落下し、下向きの速度が増加します。非常に単純なプレーヤー コントロールを追加すると、ほとんどスロットルされているように見えますか? 重力を 50 程度に上げても、プレイヤー制御スクリプトがないと、gravity=1 (デフォルト設定) と同じようには感じられません。これが私のコードです。