Unity( 6 )

Category
[Unity] Rigidbodyのスリープ問題
2ヶ月くらい前のゲームジャムで嵌っていた問題のメモ書きです。 玉転がしゲームで以下のように水平面に球体を落として平面を回転させたとき、ボールがその場で止まってしまいます。 分かり易くするため、ボールがスリープ状態のときは赤色に、そうでないときは緑色に表示しています。 ボールが平面に完全に静止したあとにスリープし、その後...
5806 PV
[Unity] AddForceの実行タイミングについて
Unityを扱っているときに嵌ったことのメモです。 Rigidbodyを使ったGameObjectに対してRigidbody.AddForce()メソッドで力や加速度を加えたい場合、以下のようにして毎フレーム呼び出されるコールバックの中で処理を行うとします。 void Update() { var body = Get...
4936 PV
[Unity] スクリプトからメッシュ(ポリゴン)を生成する
描画するメッシュをスクリプトから動的に生成する方法のメモ書きです。 これを行うことで、スクリプトから好きな図形のメッシュを作成できるようになります。 まず、以下の手順を踏んでメッシュを描画するための準備を行います。 1.ゲームオブジェクトを生成する 2.Mesh Filterを1.で作成したゲームオブジェクトにアタッチ...
7495 PV
[Unity] GameObjectが消えても効果音が鳴り続けるようにする
UnityでAudioSourceを使って効果音を鳴らすとき、AudioSource自体が破棄されてしまうとこのAudioSourceから鳴っている効果音も同時に止まります。 たとえばオブジェクトが破棄されるときに爆発音を鳴らそうとすると、鳴った瞬間に音が止まってしまうためまったく音が聞こえなくなってしまいます。 また...
8024 PV
[Unity] protectedやprivateなフィールドをインスペクタから見れるようにする
UnityのスクリプトをGameObjectに追加すると、publicなフィールドをインスペクタから編集することができます。 以下のような設定項目は基本的にpublicなフィールドに指定する初期値を入力する画面です。 一方、protectedやprivateなメンバはインスペクタから参照することができません。 しかし、...
4745 PV
[Unity] [NGUI] スクリプトからAtlasのスプライトを変更する
NGUIでスプライトをスクリプトから動的に変更するときに嵌ったメモです。 NGUIでは、スプライトはUISpriteコンポーネントで管理します。 あらかじめAtlasで作成したスプライトは、UISprite.spriteNameで設定できます。 // スプライトコンポーネント取得 UISprite sprite = t...
3840 PV
[Unity] スプライトをフェードアウトさせる
Unity上でスプライトを徐々にフェードアウトさせる方法についてのメモ書きです。 これは簡単な爆発エフェクトなどに使えます。 スプライト描画を行うコンポーネントはSpriteRendererであり、この中にColorフィールドがあります。 Colorフィールドはスプライトの絵を貼り付ける下地となる紙のようなもので、この...
57315 PV
[Unity] Time.timeとTime.realtimeSinceStartupについてのお話
Unityでモーションを実現したいとき、現在時刻を参照することはよくあると思われます。 現在時刻はTime.timeから分かります。 しかし、このTime.timeはTime.timeScaleの値により時刻の進行速度が変化します。 デフォルトはTime.timeScale=1となっており、本来の速度で時間が経過してい...
15273 PV
[Unity] OnDestroy()でゲームオブジェクトを生成するとゴミが残る問題
OnDestroy()コールバックでゲームオブジェクトをnewしたりプレハブからInstantiateするとゲームオブジェクトが解放されずにゴミが残ってしまうことがあります。 この現象の回避策は今のところOnDestroy()でインスタンス化しないことが最善策だと思います。 なぜゴミが残ってしまうかは原因が分かりません...
2454 PV