万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

ex2Dでのanimationとの置き換え Unity

最近はC#で書いてます。


http://www.ex-dev.com/ex2d/script_ref/classex_sprite_animation.html
このドキュメントが参考になります

if (!animation.isPlaying) {
}

↑animation

exSpriteAnimation exAnim = gameObject.GetComponent<exSpriteAnimation>();
if (!exAnim.IsPlaying("anim")) {
}

↑ex2D
こうする(iが大文字のIになってる「IsPlaying」のに注意)
しかも、引数が必須!

animation.CrossFade("animName");

↑animation
この代用がない??

  • カプセルコライダーの計算について
collider.radius + collider.height / 2 + 0.2f;

この計算が解せなかった。
カプセルは、高さheightの"円柱"の上下に半径radiusの半球が"上"と"下"にくっついてる。
よって、半球の上下の半球が2つなので「collider.radius」となり、真ん中に挟まれた円柱の高さがcollider.height / 2
あれ?なぜ2で割るの?
おそらく、

this.layOriginOffs = new Vector3(0.0f, 0.5f, 0.0f);

このせいで、キャラのポジションが少し上になるから?

  • SetAnimationStateメソッドの追加の部分にあるミス
void SetAnimationState(AnimationState s) {
    //this.AnimationState[this.CurAnimPos] = s;
    this.AnimState[this.CurAnimPos] = s;
}
AnimationState GetOldAnimationState(){
    //return this.AnimationState[this.CurAnimPos ^ 0x1];
    return this.AnimState[this.CurAnimPos ^ 0x1];
}
  • 移動の部分のミス
thislWalkSpeed = 4.0f;

↑.とlをミスっている

this.WalkSpeed = 4.0f;

↑こうする

  • 0x7fffff7fの秘密

~(1<<8) == 0x7fffff7fらしい
~はビット反転?
http://unity3d.com/support/documentation/Components/Layers.html