問題タブ [unityscript]
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 - ゲームオブジェクトを変換する
配列に格納されているキューブにオブジェクトを移動させようとしています。
配列は、タグ付きのゲームオブジェクトで埋められます。
オブジェクトを立方体に即座に移動させることはできますが、ゆっくりと移動することはできません。
これは私のスクリプトです:
私も試してみましたTime.deltaTime
が、キューブから遠く離れてテレポートします。
そして、それを変換配列に変換するだけではうまくいきません:(これを機能させるためのアイデアはありますか?
助けていただければ幸いです:) よろしくお願いします!
unity3d - マグニチュードポジション
プレイヤーと敵の間のdistance.magnitudeに合わせてスケーリングする立方体があります。このスケーリングキューブを主人公と敵の真ん中に置きたいです。したがって、2つのオブジェクト間のマンギチュードを位置として使用することは可能ですか。
これは私のスクリプトです:
heDistance.magnitude / 2を使用して、距離の中央を取得します。ヘルプは大歓迎です。前もって感謝します!:)
javascript - カスタム マウス カーソル + IE の問題
私はこれらの属性を持つプロジェクトに取り組んでいます:
- ページを駆動するjQuery
- jQuery を使用してページに埋め込まれた Unity 3d プレーヤーと
unityobject.js
(Unity からの指示に従って) - ユーザーのカーソルが Unity のキャンバス領域内にある場合、Unity にはカスタム マウス カーソルがあります。
問題: Unity はマウス カーソルをキャプチャしますが、それを含む Web ページが非アクティブになったときに解放しません。これは、ユーザーが別のタブに切り替える (または新しいウィンドウを開く) 場合、Unity があったはずの領域にマウスを移動すると、マウス カーソルが消えることを意味します。これは Unity 3d フォーラムで説明されている Unity のバグです: http://forum.unity3d.com/threads/4565-Unity-Web-player-issue-mouse-hidden-for-all-new-windows
いいえ、Unity Web クライアントの最新バージョンではまだ修正されていません。
この問題を軽減するために、Unity が JavaScript を介して現在のブラウザー ウィンドウのステータスをリッスンし、受け取ったステータスに基づいてカスタム マウス カーソルをキャプチャ/リリースすることにしました。しかし、他にも問題があります:
Unity がウィンドウ ステータスを受け取る方法:
私は次の方法を試しました...
方法 1: イベントを「window」オブジェクトにバインドする
問題: IE7 と IE8 では、新しいブラウザー タブは別の「ウィンドウ」と見なされないため、コードは Unity に影響しません。真の別のブラウザ ウィンドウが開いている場合にのみ機能します。
方法 2 :イベントを「ドキュメント」オブジェクトにバインドする$( document ).live(...);
問題: $( document )
jQuery では実際には何もしません。難しい方法を見つけました。
ソース: http://forum.jquery.com/topic/should-document-live-map-to-document-bind-window-too
<body>
方法 3 :イベントをオブジェクトにバインドする$( 'body' ).live(...);
問題:どういうわけか IE は Unity オブジェクトが DOM の一部であることを認識しません (.live()
メソッドを使用しているにもかかわらず)。そのため、ユーザーが組み込みの Unity プレーヤーをクリックするたびに、ブラウザーはblur
イベントを Unity に送信し、マウス カーソルがロックされます ( Unity がクリックされるとconsole.log()
出力されます)。inactive
また場合によっては、マウス カーソルを解放することさえできず、ブラウザ全体がマウス イベントに応答しなくなります。カーソルを解放する唯一の方法は、ブラウザー ウィンドウの外側をクリックし、ブラウザーをもう一度クリックすることです)。
私が試した他のこと:
問題: .addEventListener()
これらの要素のメソッドは、IE ではまったくサポートされていません! ガッ!
おまけ:
より注意深い人は、「ねえ、Unity オブジェクト自体でマウス クリック イベントを検出して、そのblur
イベント (.live()
複数可) を無視してみませんか?」と言うかもしれません.bind()
。それを試しました。IEもそれが好きではありません。イベントを完全に無視し、それらのイベントはオブジェクトには使用できないと伝えます。
だから私の仲間のJavascriptグル。この問題にエレガントな方法で最善の方法でアプローチする方法について、私はアイデアがありません。任意のポインタをいただければ幸いです。
animation - ローカル位置のアニメーション
私はこれを作ろうとしています:
キャラクターが大きな木箱に近づき、プレイヤーがeキーを押すとアニメーションが再生され、キャラクターが木箱に登っていきます。(すべて一人称視点)。
これまでのところ、Unity の通常の「First Person Controller」プレハブでこれを試しました。
これまでの私のコード:
ただし、これを FPC で使用すると、常にアニメーションが作成された位置から再生されます。また、空のゲーム オブジェクトを作成して、そこに FPC を配置しようとしました。同じ効果が得られます。
直近では、FPC単体のグラフィックだけアニメ化してみました。これは機能しているように見えますが、Character Controller 自体はアニメートされていないため、地面にとどまります。そのため、FPC 全体が機能しなくなります。
プレーヤーがその時点でいるローカル位置でこのアニメーションを再生できる方法はありますか? それとも、つかんで登るための他の論理的な解決策を思いつくことができますか?
ios - iOS が次のレベルをロードしない
Unity の初期レベルが大きいと、読み込みが完了する前に iPhone/iPad がアプリをシャットダウンすることを認識しています。私が考えた解決策は、1 または 2 フレームで降伏してから次のレベルのロードに進むローディング レベルです。
これは何らかの理由で機能しないようです。どちらのシーンも Unity のビルド ウィンドウで正しく設定されており、Xcode ではエラーは発生しません。
私が説得できる提案はありますか?
unity3d - マウススクロール入力を取得するには?
Unity3D で単純な武器の変更を試みています。これを行う最善の方法は、私が見る限り、マウスのスクロール ホイールを使用することです。
これを行う方法をグーグルで調べたところ、Input.GetAxis("Mouse ScrollWheel"); を使用する必要があることがわかりました。このコードを使用して印刷します。それでも私は常に0の値を取得します。何かアイデアはありますか? 最初に値を取得する方法を解決する必要があるだけで、残りは自分で理解できません。
コードのアイデア:
unity3d - ゲームオブジェクトを見つける前に遅延を追加する方法
敵を刺すことができるゲームを作ろうとしています。敵は約 1 秒間もがき、死んでしまいます。(ラグドール);
私のスクリプトを表示するのが最善だと思います。あなたは私が何を意味するか知っています:
オン トリガーで、スクリプトを入力します。
そして更新機能で:
今、私のナイフが敵の衝突に入ると、敵はすぐに床に落ちます. 私は入れてみました:
の更新機能でif(StopBleeding > 50)
。
これを行うと、スクリプトが敵を見つけることができるため、Null reverance exception のエラーが発生します。それができる間、私は引き金に入ることができます。
基本的に私の質問は次のとおりです。このエラーを修正して 50 フレームの遅延を与える方法はありますか (残りはすべてStopBleeding
動作します)。
または、ラグドールがアクティブになる前に簡単な遅延を入れる方法はありますか?
前もって感謝します
unity3d - 配列への追加をスキップ
continue を使用するとスクリプトの特定の部分をスキップできることは知っていますが、配列で同じことを行う方法はありますか? すべてのオブジェクトが配列に格納されることを望みますが、このスクリプトを着用するオブジェクト (同じタグを持つ) は格納されません。
例:
敵 1 には、敵 2、3、4 を持つ配列があります。
Enemy 2 には Enemy 1,3,4 を持つ配列があります。
敵 3 には、敵 1、2、4 を持つ配列があります。
Enemy 4 には、Enemy 1,2,3 を持つ配列があります。
unity3d - ハイスコアテーブルを行う
アーケード スペース シューター ゲームのハイスコア テーブルを作成しようとしています。変数を使用してこのテーブルを作成しているため、一時的なスコアを保存するための DB は必要ありません。
私はUnityを使用していますが、プレイヤーが持っていた現在のスコアを保持するScorescriptにアクセスしようとしています.問題は、スクリプトのコンポーネントが見つからないということです.オブジェクトタグ名は正しく、スクリプト名もここにあります.スコアスクリプト:
そして、この特定の部分を完成させるために誰かが手を差し伸べることができれば、私はスクリプティングが得意です。とても感謝しています。