2013年7月7日日曜日

Unity Tips #40 - ビルボード化

前回に引き続いて Unify Community からビルボード化に関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day

Nov 2012

ビルボード化


Tip #40 - Billboarding

次のコードスニペットはオブジェクトのビルボード化に使用します。スクリプトをオブジェクトの上にドロップすることで、カメラの方へ自動的に向きます。
 public class CameraBillboard : MonoBehaviour
 {
    // ゲームオブジェクトをビルボード化させる対象のカメラ
    public Camera m_Camera;
    // true の場合ゲームオブジェクトはクリッピング平面のカメラの前に配置されます。
    public bool PositionInFrontOfCamera;
    // PositionInFrontOfCamera が true の場合のオブジェクトのオフセット幅
    public float Offset = 0.001f;
 
    void Awake()
    {
        // カメラが指定されてない場合はメインカメラを使用
        if (m_Camera == null) m_Camera = Camera.main;
    }
 
    void Update()
    {
        // カメラの forward ベクトルを取得して正規化
        var vec = m_Camera.transform.forward;
        vec.Normalize();
 
        // ゲームオブジェクトのポジションをカメラのクリッピング平面のすぐ内側にセットしてカメラビューをブロックするようにする
        if (this.PositionInFrontOfCamera) this.transform.position = m_Camera.transform.position + (vec * (m_Camera.nearClipPlane + this.Offset));
 
        // ゲームオブジェクトの向きがカメラの方へ向くようにする
        this.transform.LookAt(this.transform.position + m_Camera.transform.rotation * Vector3.back, m_Camera.transform.rotation * Vector3.up);
    }
 }
-----

短いコードスニペットを使いこなして基本的なテクニックを身につけようぜ!

0 件のコメント:

コメントを投稿

ブックマークに追加

このエントリーをはてなブックマークに追加

自己紹介

自分の写真
Unity3D公式マニュアル翻訳やってる人がスマホ(iPhone, Android)のゲーム開発しています。気軽に面白く初心者が遊べる内容がモットー。Blogでは開発情報をひたすら、Twitterではゲーム作成の過程で参考にしている情報を中心につぶやきます

ページビューの合計

過去7日間の人気投稿