【Unity 2D】2Dユニティちゃんのスクリプトを勉強する-その1

  • |
【Unity 2D】2Dユニティちゃんのスクリプトを勉強する-その1
   

Unity界隈では話題の「ユニティちゃん」に手を出してみました。


ここからすぐに使えるプロジェクトがダウンロードできるのですが、今回は2Dバージョンのスクリプト[UnityChan2DController]を見て勉強をしようと思います。

void Reset()

まずは、[void Reset()]です。
今まで1回も見たことなかったのですが、この[Reset()]では色々な変数の定義をしています。
void Reset()
    {
        Awake();

		Debug.Log("  Reset ha kidou ");

        // UnityChan2DController
        maxSpeed = 10f;
        jumpPower = 1000;
        backwardForce = new Vector2(-4.5f, 5.4f);
        whatIsGround = 1 << LayerMask.NameToLayer("Ground");

        // Transform
        transform.localScale = new Vector3(1, 1, 1);

        // Rigidbody2D
        m_rigidbody2D.gravityScale = 3.5f;
        m_rigidbody2D.fixedAngle = true;

        // BoxCollider2D
        m_boxcollier2D.size = new Vector2(1, 2.5f);
        m_boxcollier2D.center = new Vector2(0, -0.25f);

        // Animator
        m_animator.applyRootMotion = false;
}
&#91;/c&#93;

調べたとこと、これは&#91;Inspector&#93;を使わずにスクリプト内で初期設定をするメソッドみたいです。
例えば、スクリプト内で、この<span style ="font-weight:700;">[UnityChan2DController]</span>をコンポーネントとして追加した時に利用するモノです。
ですので、[Inspector]で追加している場合は時に気にしないでいいと思います。

<h2>Physics2D.OverlapArea</h2>
<span style ="font-weight:700;">[FixedUpdate()]</span>内にある[Physics2D.OverlapArea]が全然分からなくて時間を取られました。
この部分で、アニメーションを変更しているのですが、「衝突判定」に関するメソッドみたいです。

 void FixedUpdate()
    {
        Vector2 pos = transform.position;
		
        Vector2 groundCheck = new Vector2(pos.x, pos.y - (m_centerY * transform.localScale.y));

        Vector2 groundArea = new Vector2(m_boxcollier2D.size.x * 0.49f,0.1f);

        m_isGround = Physics2D.OverlapArea(groundCheck + groundArea, groundCheck - groundArea, whatIsGround);
        m_animator.SetBool("isGround", m_isGround);
    }



わかりにくいですが赤い枠の領域layer[Ground]のcolliderとが重なりあっていないかを調べています。
Unity chan000


ここで重なりが確認出れば、アニメーションを[Jump]->[idle]に変更しています。

その他-OverLap

先ほどの[Physics2D.OverlapArea]以外にも複数の種類があります。
  • Physics2D.OverlapCircle : colliderと円の領域
  • Physics2D.OverlapPoint : colliderと点

これを使えば「衝突判定」が簡単にできそうです。
これは今まで知らなかったので今後使えそうな感じがします。

【参考】
Unity – Unity Manual

最後に

今回は「その1」として、ここまでです。
次回は、アニメーションの詳しい中身を勉強してみたいと思います。

日経ソフトウエア 2014年 11月号日経ソフトウエア 2014年 11月号
日経ソフトウエア

日経BP社

Amazonで詳しく見る

Related Posts Plugin for WordPress, Blogger...