タグ付けされた質問 「unity」

Unityは、簡単なアートパイプラインプロセスに焦点を当てたクロスプラットフォームのゲーム作成システムです。ゲームエンジンと統合開発環境で構成されています。ゲームエンジンのスクリプトはMono上に構築されています。

2
遅延マウス入力を行う方法は?
私はカーゲームをしていて、プレイヤーが酔っているという考えがあります。マウスを左右に動かして回転させる、マウスからの入力を遅らせたいのですが。 ユーザーが与える入力と車の回転量の間に一定の遅延を設定するにはどうすればよいですか? 今私はこれを持っています: h = Mathf.Lerp(h, (((Input.mousePosition.x / Screen.width) * 2) - 1), Time.deltaTime * 2); 何が起こるかはターンが遅れますが、非常に遅いです。つまり、マウスを非常に速く動かすと、車の旋回は非常に遅くなりますが、乗数を上げるTime.deltaTimeと、車の旋回は速くなりますが、遅延の影響は最小限に抑えられます。 他にどのようにこれを行うことができますか?
11 unity  c#  input  mouse 

3
画面に自然の雨粒を作るにはどうすればよいですか?
画面にメタボールとトレイルを配置して雨の効果を落とそうとしています。shadertoyに手掛かりが見つかりましたが、実装方法がわかりませんでした。 https://www.shadertoy.com/view/ltffzl 残念ながら、これには多くの数学計算があり、ラグを生成するため、単一で使用することはできません。明らかに、テクスチャを使用する必要がありますが、どのようにしてトレイル効果を持たせることができますか? 私のアイデアは、ドロップにテクスチャとトレイルレンダラーを使用することですが、メタボールエフェクトをどのように使用できますか? 更新 この記事でメタボールを実装できました https://github.com/smkplus/RainFX/tree/master トレイルについてはまだ考えていません

2
自動生成されたスクリプトをカスタマイズするにはどうすればよいですか?
Unityエディターを介してスクリプトを作成すると、事前にフォーマットされたコードを含むスクリプトが生成されます。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class GenericClass : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } } スクリプトを作成すると、通常、名前空間やカスタムエディターなどの追加コードを使用することが保証されます。さらに、ほとんどの場合、自動生成されたスクリプトからコンテンツを削除します。Unityによって生成された自動コードを変更する方法はありますか?
11 unity 

2
ゲームオブジェクトのコンポーネントを破棄できるかどうかを確認する
Unityでゲームを開発し、[RequireComponent(typeof(%ComponentType%))]コンポーネントをすべての依存関係に確実に適合させるためにを自由に使用しています。 現在、さまざまなUIオブジェクトを強調表示するチュートリアルシステムを実装しています。強調表示を行うにはGameObject、シーン内のへの参照を取得し、それをInstantiate()で複製してから、表示に不要なすべてのコンポーネントを再帰的に取り除きます。問題はRequireComponent、これらのコンポーネントを自由に使用すると、まだ削除されていない他のコンポーネントに依存しているため、多くのコンポーネントを任意の順序で単純に削除できないことです。 私の質問はComponent、GameObject現在アタッチされているからを削除できるかどうかを判断する方法はありますか。 私が投稿しているコードは技術的には機能しますが、Unityエラーをスローします(画像に示すように、try-catchブロックでキャッチされません) これがコードです: public void StripFunctionality(RectTransform rt) { if (rt == null) { return; } int componentCount = rt.gameObject.GetComponents<Component>().Length; int safety = 10; int allowedComponents = 0; while (componentCount > allowedComponents && safety > 0) { Debug.Log("ITERATION ON "+rt.gameObject.name); safety--; allowedComponents = 0; foreach (Component c in rt.gameObject.GetComponents<Component>()) …
11 unity  c# 

2
最後のgitコミット以降にシーンに加えられた変更を視覚的に確認するにはどうすればよいですか
gitにコミットする前に、シーン(.unityファイル)に加えられた変更を確認したいと思います。 私はいくつかのGIT / Unityソリューションを調べましたが、それらはすべて変更をマージするために作成されたものであり、最新バージョンとの差分を表示するためのものではありません。 シーンファイルの問題は、他のアセットを指すGUIDを使用することであり、シーンファイルの差分を開くと、実際には何も作成できません。 例えば: 代わりに、私はこのようなものを見たいのですが: これを行うものは存在しますか?

2
非同期操作/コルーチンを待つ方法は?
Unity 5でコルーチンと非同期操作が完了するのを待つ一般的で再利用可能な方法を探しています。C#5のawaitキーワードと同様です。 私が考えることができる最も簡単な方法は次のようなものです: public class SomeUtility { public bool IsDoingSomething { get; private set; } public IEnumerator DoSomethingAsync() { IsDoingSomething = true; yield return new WaitForSeconds(2); IsDoingSomething = false; } } そして別のコルーチンで: while(!someUtilityInstance.IsDoingSomething) yield return null; ただし、whileステートメントでコードが乱雑になり、再利用できず(単純なユーティリティ関数でもインスタンスと専用クラスが必要です!)、必要のない場所にシングルトンまたは静的なものがたくさんあるため、これはあまり良くありません。 私が見つけた最も近いものはUnityを使用していAsyncOperationます。これは非常にうまく機能します: public static IEnumerator Await(this AsyncOperation operation) { while(!operation.isDone) yield return operation; } …

2
UnityでBillboardRendererを使用するには?
バージョン5(?)以降、Unityには新しいコンポーネントタイプがありBillboardRendererます。残念ながら、ドキュメントはかなり貧弱です。 「コンポーネントの追加->その他->ビルボードレンダラー」をクリックすることでインスペクターに追加できますが、Billboard Asset何もする必要がないようです。Unityインターフェースから作成する方法はないようです。 同様に不十分な BillboardAssetのドキュメントからの数少ない文章の1つは次のとおりです。 imageCount ビルボードをさまざまな角度から見たときに切り替えることができるプリベーク画像の数。 私の最新のプロジェクトにはスプライト/ポリゴンミックスグラフィックスがあるので、ビューアングルに応じて異なるスプライトでビルボードをレンダリングするコンポーネントは、私が実際に利用できるものです。しかし、そのような画像を追加する方法はないようです。 したがって、このコンポーネントの使用例を投稿できるかどうか疑問に思いました。
11 unity 

2
動的な障害物やプレーヤーが作った障害物のためのA *パスファインディング?
こんにちは、Unity 5でTDを作成しています。Pathfindingで助けが必要です。 私は、AIにArons A *パスファインディングを使用して、動的オブジェクトを使用し、実行時にパスを更新できるようにします。ただし、私のゲームでは、プレイヤーが特別なタレットで手先をブロックできるようにして、目的地に行く代わりに手下に「ブロックタワー」を強制的に攻撃させます。 どうすればこのようなことを達成できますか? より明確にするための画像:
11 unity  c#  2d  ai  path-finding 

6
カメラビューの外側にあるゲームオブジェクトは、Unityのコンピューター/モバイルリソースを消費しますか?
一体で、カメラに表示されず、ゲームの実行中にレンダリングされないゲームオブジェクトがシーンにあるとします。 これらのゲームオブジェクトは、ゲームの実行中にコンピューター/モバイルリソースを消費しますか? このような使用法の詳細はどこにありますか?


2
幅または高さを満たす塗りつぶしUnity正方形
私はこの要件でボードを作成しようとしています: 正方形である必要があります。 利用可能な幅または高さに合わせる必要があります。 キャンバスの中央に配置する必要があります。 必要に応じて、追加の中間キャンバスにラップできます。 私はアンカーで遊んでいますが、それを行うための組み合わせを見つけていません。私が考えることができる唯一の解決策は、コンテナのある種の「OnResize」をスクリプト化し、ボードのサイズをプログラムで設定することです。 これがオリジナルのレイアウトです。(1)はBoardCanvasです。(2)は取締役会です。 画面が高くなると正方形が大きくなりますが、正方形のままです。 または削減: ただし、上記の例では上端と下端にスナップしていますが、垂直方向のスペースが使用可能な幅よりも高くなる場合、正方形が左と右の境界に応じてサイズを制限することも必要です。 Q1:アンカー/ピボットでこれを行う方法はありますか?動作する場合は、BoardCanvasとBoard自体の間に中間キャンバスを作成してもかまいません。 Q2:その場合、アンカーをどこに配置すればよいですか?中間オブジェクトが必要ですか? Q3:そうでない場合、スクリプトで解決策はありますか?キャンバスに処理するOnResizeはありますか?リストにサイズ変更イベントが表示されませんが、どこを探したらよいかわかりません。すべてのフレームでそれをテストすることは少しやり過ぎに思え、イベント駆動がより良いように思えます ありがとう!

3
UnityではJavaでコーディングできますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 2年前に閉店。 Unity3Dの使用経験はかなり浅いですが、JavaとAndroidの開発については非常によく理解しています。Androidアプリケーションを開発するためにJavaがまったく必要な場合、私は本当に混乱していますか?Unityのドキュメントのどこかで、Unityのオブジェクトに動作を追加するにはスクリプトを使用する必要があり、そのUnityはC#、.Net、およびBooスクリプトのみをサポートすることを読みました。Javaをまったく使用しませんか?

2
自動編成/スマート在庫システム?
過去1週間、Unity3Dを使用して在庫システムに取り組んできました。最初はDesign3の人たちから助けを得ましたが、パスを分割するまでそれほど長くありませんでした。彼らのコードのやり方が本当に好きでなかったので、OOPの匂いはまったくありませんでした。 私はさらに一歩進んだ-アイテムは複数のスロット、高度な配置システム(アイテムはベストフィットを見つけるために最善を尽くす)、ローカルマウスシステム(マウスはアクティブなバッグ領域に閉じ込められる)などをとります これが私の作品のデモです。 私たちがゲームに入れたいのは、自動整理機能ではなく、自動整理機能です。この機能が必要なのは、インベントリが「リアルタイム」になるためです。バイオハザード1、2、3などでは、ゲームを一時停止してインベントリで何かを行うのとは異なります。ゾンビに囲まれた粘着性のある状況で自分を想像してみてください。弾丸はなく、周りを見回すと、地面に近くに弾丸があることがわかります。そのため、弾丸を手に取り、拾ってみますが、弾丸はありません合わない!あなたはあなたの持ち物を見て、あなたがアイテムのいくつかを再編成するならば、それが合うことを見つけます!-現在、プレーヤー-ゾンビに囲まれているため、再編成する時間がないため、スペースを確保するために停止して在庫を整理すると、死亡します(在庫をリアルタイムで記憶し、一時停止しないでください)- それが自動的に行われるのはいいことですか?- はい! (これはDungeon siegeなどの一部のゲームに実装されていると思うので、実行可能であることを確認してください) たとえば、この写真を見てください。 はい、そのため、問題を自動並べ替えると、スペースが表示されますが、次の理由で不良です。左下に移動すると、自動ソートと同じスペースが得られます。2-「それはFが私のものを再注文するように誰に言ったのですか?」 私はこれのために「コードを書く方法」を求めているのではなく、いくつかのガイダンスを求めています。これはグラフや最短経路に関するものですか?大学での勉強を続けることができなかったのではないかと思います:/でも、もしそうなら、教えてください。関連することを学びます。 解決策は1つだけではないことに注意してください。だから私が最初にしなければならないことは、状況が「解決可能」かどうかを判断することだと思います。状況が解決可能かどうかを判断する方法を知っていれば、「解決」できます。私はそれを「解決可能」にする条件を知る必要があるだけです。そして、これにはいくつかのアルゴリズム/データ構造が必要だと思います。 これは、1x3のアイテムをフィットさせようとする複数のソリューションの写真です。 矢印は解決策の1つを示していますが、見れば、複数の解決策が見つかるはずです。これは私が最終的に自動分類しないものですが、解決策を見つけてそれを適用します。 私がそれに時間を費やした場合、私はそれを解決する方法を思い付くでしょうが、それは最善の方法ではないでしょう、それは、あなたの手ではなく足で車の車輪を握るようなものです!XDまたは、配列が必要な問題を解決しようとするのと同じですが、それらの存在をまだ認識していません。これに対する正しいアプローチは何ですか? 解説からの更新 @Stephen私は本当にAlogsの第一人者ではありません。あなたは「ナップサック」と@BlueRajaについて言及しました-Danny Pflughoeftは2Dビンのパッキングアルゴについて言及しました。それらはどういうわけか関連/同じですか?-私はこれにどのように取り組むべきかについてまだ混乱しています。 そして、はい、私はすでに「ヒューリスティック」を使用していますが、自分がそうであるとは本当に知りませんでした。Dは、最初の使用可能なスロットを見つけ、アイテムがそこに収まるかどうかを確認します。 たとえば、2x2と1x4のアイテムがあるため、それらの「かさ高さ」(nSlotsRequired = nRowsReq * nColsRecと呼びます)に基づいてアイテムを注文しても機能するかどうかはわかりません。次の項目の残りの部分に異なる影響を与えます。そう... :/ 私はこのビデオを見て、完全な梱包のアイデアが本当に好きでしたが、在庫が2Dであるため、どうすればよいか疑問に思います。私が複数のバッグを持つことができるのは確かですが、ビンの梱包がここでの鍵であるかどうかさえわかりませんが、ゲームでは1つのバッグになるだけです。つまり、「1つの」バッグにアイテムを収めることだけが問題です。したがって、そのvidの例(パイプとバス)は実際には私の問題と一致しません。また、このナップザックの事柄についても注意深く見ましたが、「値」がアイテム/在庫にどのように関連しているかはわかりませんでしたが、「重量」はかさ高さと同じだと思います。

1
UnityのOnCollisionEnterで表面の法線が得られないのはなぜですか?それらを取得する最も信頼できる方法は何ですか?
Unityのonコリジョンイベントは、発生したコリジョンに関するいくつかの情報を提供するCollisionオブジェクトを提供します(ヒット法線を持つContactPointsのリストを含む)。 しかし、得られないのは、衝突したコライダーの表面法線です。これは説明するためのスクリーンショットです。赤い線はからContactPoint.normal、青い線はからRaycastHit.normalです。 これは、簡素化されたAPIを提供する情報を隠すUnityのインスタンスですか?または、標準の3Dリアルタイム衝突検出技術でこの情報が収集されないのですか? そして質問の2番目の部分について、衝突の表面法線を取得するための確実で比較的効率的な方法は何ですか? レイキャスティングによって表面の法線が得られることはわかっていますが、これをすべてのシナリオで実現するには、いくつかのレイキャストを行う必要があるようです(接触点と通常の組み合わせで最初のキャストのコライダーが欠落するか、すべての平均を行う必要があるかもしれません)最良の結果を得るための接触点の法線)。 私の現在の方法: Collision.contacts[0].point通常のヒットに沿ってバックアップします 否定ヒットダウンレイキャスト通常のためfloat.MaxValueに、Collision.collider それが失敗した場合、通常の否定されていない状態でステップ1と2を繰り返します。 それが失敗する場合は、ステップ1〜3を試してください。 Collision.contacts[1] 成功するまで、またはすべての接点がなくなるまで4を繰り返します。 あきらめて、戻りVector3.zeroます。 これはすべてをキャッチしているようですが、これらすべてのレイキャストは私をうるさくします、そしてこれが十分なケースで機能することをテストする方法がわかりません。もっと良い方法はありますか? 編集 これが本当に3Dコリジョンでの方法である場合、一般的な場合の理由の概要は、Unityに固有の何かと同様に歓迎されます。

1
複数のモニターでUnityをレンダリングする
現時点では、2つのモニターで実行できるように統一しようとしています。私はいくつかの調査を行いましたが、これは厳密に言えば可能であることを知っています。両方のモニター間で統一してレンダリングするために、基本的にはウィンドウサイズをフラフにする必要がある回避策があります。 私がやったことは、次の画像の3840 x 1080に示すように、両方のモニターの幅を取り込む新しいカスタム画面解像度を作成することです。 ただし、Unityゲームexeを実行しようとすると、そのサイズは利用できません。私が得るすべては以下です: 私のカスタムサイズは一番下にあるはずですが、そうではありません。exeを介してゲームを実行する際に、カスタム画面サイズを統合するために、私が行っていない、または見逃しているものはありますか? 奇妙なことに、ユニティエディター内で、カスタム画面サイズが取得され、ゲームウィンドウでそれを設定できます。 ファイルメニューからゲームをビルドして実行するときに、忘れてしまったことはありますか?誰かがこれまでにこの問題を克服したことがありますか?
11 unity  rendering 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.