Unityでゲームを開発する際に役立つC#スクリプトの簡潔なTipsを紹介します。
2つのGameObject間の距離を計算する
C#
// gameObjectAとgameObjectBの距離を計算
float distance2D = Vector2.Distance(gameObjectA.transform.position, gameObjectB.transform.position);
GameObjectにアタッチされているスクリプトを参照する
C#
// GameObjectにMyScriptがアタッチされている場合
MyScript myScript = gameObject.GetComponent<MyScript>();
GameObjectにスクリプトをアタッチする
C#
// GameObjectにMonoBehaviourを継承しているMyScriptクラスをアタッチ
public class GameObjectScript : MonoBehaviour
{
private MyScript myScript;
public void AttachMyScript()
{
myScript = gameObject.AddComponent<MyScript>();
}
}
Animatorにアニメーション名を指定して再生させる
C#
// GameObjectにMyScriptがアタッチされている場合
Animator animator = gameObject.GetComponent<Animator>();
// アニメーション名がPlayrRunningのアニメーションを再生
animator.Play("PlayrRunning");
AnimatorにAnimationを再生させる
C#
public void PlayAnimation(Animation animation)
{
// GameObjectにMyScriptがアタッチされている場合
Animator animator = gameObject.GetComponent<Animator>();
// Animationをstringに変換してPlay()の引数に
animator.Play(animation.ToString());
}
Animatorが再生中のAnimationの名前を取得
C#
public string GetCurrentAnimationName()
{
// GameObjectにMyScriptがアタッチされている場合
Animator animator = gameObject.GetComponent<Animator>();
AnimatorClipInfo[] clipInfo = animator.GetCurrentAnimatorClipInfo(0);
if (clipInfo != null && clipInfo.Length > 0)
{
return clipInfo[0].clip.name;
}
return "";
}