問題タブ [unity3d-5]
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.
unity3d - 動的に追加されたボタンクリックのリスナーの呼び出し元を見つける
クリック リスナーを追加したいボタンのリストをコードに追加しています。
リスナーを追加できました。問題は、リスナーを呼び出したボタンを知りたいということです。
次の方法を試しましたが、リスナーに渡される値は常に同じです。
TL;DR
ボタンクリックリスナーから発信者を見つけるにはどうすればよいですか?
unity3d - Unity3D は画面解像度に応じて Assets フォルダーを選択します
Unity3D ゲームを作成しました。バックグラウンド テクスチャは、iPad Retina 解像度に合わせて 2048x2048 です。しかし、解像度がはるかに低い古い携帯電話には多すぎます。すべてのテクスチャのサイズを変更し、2 回ダウングレードしたテクスチャを含む 2 つ目のフォルダーを作成しました。
解像度に応じてテクスチャ フォルダを選択する正しい方法は何ですか。
Unity3D の性質はその GUI ツールであり、通常、プロパティ インスペクターでテクスチャを設定する場合、コードですべてを手動で設定するのは Unity の方法ではありません。
また、コードでテクスチャを変更するかどうかもわかりません。その場合、古いテクスチャと新しいテクスチャの両方が読み込まれません。
もう 1 つのアイデアは、異なる解像度に異なるシーンを使用することです。しかし、何かを変更したい場合は作業が 2 倍になり、アプリをテストする作業も 2 倍になります。
複数の解像度を処理するには、何らかの解決策が必要です。しかし、起動時にテクスチャのあるフォルダーを選択するだけの単純なものは見つかりません。
unity3d - Unity の遅延ポイント ライトが遠くに消える
更新を含む概要:
ディファード ライティングを使用した Unity 5 シーン。800 単位の空間に広がる約 200 のライトが含まれています。
ほとんどのライトはポイント ライトで、一部はスポット ライトです。スポットは正常に機能します。
ポイント ライトは、カメラから約 150 ~ 200 ユニット離れたところで瞬時に暗くなります。
多数のポイント ライトをこの範囲内に移動すると、問題なく動作します。
自動と重要の間でレンダリングの優先度を切り替えても違いはありません。
このシーンをロードできるエディタで別のシーンを再生すると、正しく表示されます。直接再生したり、ビルドを実行したりすると、正しく表示されません。
基本的なシーンをまとめました。これは、廊下の 5 つのクローン セクションで構成され、それぞれに 12 個のライトがあるため、合計 60 個です。
ただし、最初の 2 つのセクションのみが適切に表示され、他のセクションはほぼ完全に暗くなっています。
そしてエディタから、距離をよりよく示すために端のセクションを強調表示します:
かすかにわかるように、ライトは実際にはそこにあり、非常に薄暗いだけです。
廊下を歩いていると、近づくにつれて完全に明るくなります。
これは、ディファード ライティングが設定されたビルド上にあり、念のためピクセル ライト カウントが正しく設定されています。
これは何らかの方法で LOD またはカメラの範囲に関連していると推測しましたが、現在、問題に影響を与えるものは何も得られないようです.
(このシーンは、実際にはライトが消えて非常用照明に切り替わることに基づいているので、それらを制御できるようにする必要があります!)
アップデート
見えるライトはスポットライトです。消えていくライトはすべてポイントライトです。
遠くの天井にスポット ライトが点灯しているのが見えるだけですが、メインのシーリング ライトは完全に暗くなります。
更新 2
いくつかのテストを実行するために、率直に言ってばかげた数のライトをシーンに追加し、廊下を拡張しました。
セクションごとに 24 個のライトがあり、合計 8 個のセクションがあるため、全部で 192 個のライトになります。
さらにライトが切れるかどうかを確認したかったのですが、そうではありません。それは完全に範囲に基づいているようです-私のシーンでは約150〜200ユニットです。
これを確認するために、私はトンネルの中心まで歩いて、背後にあるものも含めて、目に見えるライトの数が実質的に 2 倍になるかどうかを確認しました。
また、すべてのセクションをカメラの近くに移動して、すべてのライトが問題なく一度に表示されることを確認しました。これも同様です。
更新 3
シーンが正しく表示される状況を発見しました!
メイン メニュー シーンのエディタで再生を押してから、このシーンをロードする UI ボタンを押すと、正しく表示されます!
シーンを直接再生するとき、または最終ビルドを実行するときに、正しく表示されません。
unity3d - Unity3D UI キャンバスでの透過メッシュのレンダリング順序
ScreenSpace-Camera UI キャンバスにアタッチされた 2D 円の手続き型メッシュがあり、その上にいくつかの UI テキストをレンダリングしたいと考えています。ただし、z オーダーを並べ替えているにもかかわらず、UI テキストは常に円の下にレンダリングされます。マテリアルを不透明なマテリアルに変更すると、すべて正常に機能します。では、UI 要素として扱われるメッシュ オブジェクトの透明なレンダリング順序をどのように処理すればよいでしょうか。