タグ

ブックマーク / ftvoid.com (3)

  • [Unity] ヒエラルキー上のGameObjectのソート

    ヒエラルキー上に存在するGameObjectをソートする方法のメモ書きです。 これを行うことで、名前順や座標順などさまざまな条件でGameObjectをソートできるようになります。 ■方針 GameObjectの順序を指定するメソッドTransform.SetSiblingIndex()を用いることで実現できます。 一つ前の記事に簡単な使い方を書いたので必要ならご一読ください。 このメソッドは処理を返した時点で順序が反映されてしまうので、ソートを行うには一工夫必要です。 今回は、ひとつ下の階層のGameObjectを自力で取得→テンポラリのリストに格納→これに対してソート→ソート結果をTransform.SetSiblingIndex()で反映するというやり方で実現します。 ■スクリプト 以下スクリプトをソートしたい対象のオブジェクトにアタッチします。 using UnityEngine;

    [Unity] ヒエラルキー上のGameObjectのソート
    Hamken100per
    Hamken100per 2017/10/13
    ヒエラルキーに配置したGameObjectを順番をソートするにはSetSiblingIndexメソッドを使う。
  • [Unity] 重力についてあれこれ

    Unityでは、Rigidbodyをアタッチしたオブジェクトに対して剛体の物理演算が働きます。 物体が落下していく動きも物理演算です。 物体の落下動作は、物体に重力加速度g(=9.81)をy軸の負の方向に与えることによって実現しています。 重力加速度の設定はメニューの「Edit」→「Project Settings」→「Physics」でPhysicsManagerを開き、Gravityから設定できます。 デフォルトではX=0, Y=-9.81, Z=0になっていると思います。 x軸方向に0以外の値を指定すれば、横方向に物体が落下(?)していきます。 全部0にすれば無重力状態になります。 この重力加速度はスクリプトからも変更できます。 // Use this for initialization void Start () { Physics.gravity = new Vector3(0

    [Unity] 重力についてあれこれ
    Hamken100per
    Hamken100per 2017/01/11
    個別に重力加速度を設定する方法。
  • [Unity] ポーズ動作をTime.timeScale=0を使わずに実現する(その2)

    前回の記事でTime.timeScale=0を使わずにポーズ動作を実現する方法について書きました。 しかし、Rigidbodyコンポーネントを持ったゲームオブジェクトでは、ポーズしてもそのまま物体をすり抜けて慣性で動き続けてしまいます。 逆にRigidbodyを使わないゲームオブジェクトであれば前回の記事で公開したスクリプトだけでも十分でしょう。 今回はRigidbodyのポーズ動作も考慮したポーズ動作の実現方法について書きます。 結論から言うと、rigidbodyコンポーネントのSleep()、WakeUp()メソッド呼び出しで実現できます。 しかし、上記だけではWakeUp()メソッドの実行時に物体の速度と角速度が0になってしまいます。 この問題を解決するために、WakeUp()呼出し後にSleep()呼び出し前の物体の速度と角速度に戻す必要があります。 これらを考慮することで、綺麗な

    [Unity] ポーズ動作をTime.timeScale=0を使わずに実現する(その2)
    Hamken100per
    Hamken100per 2016/09/01
    timeScaleを使わない一時停止。Rigidbody対応版。
  • 1