コードでのコンポーネント追加

コードでのコンポーネント追加


2パターンある
  • 属性RequireComponent を利用してゲームオブジェクトにコンポーネントを追加(unityエディタ上で作業時に表示される)
  • gameObject.AddComponent を利用してゲームオブジェクトにコンポーネントを追加(実行時に追加される)

エディタ上で編集したいなら前者、あまり他人にいじられたくなければ後者が良いかも

サンプル1


using UnityEngine;
using System.Collections;

//ここで属性を使って追加もできる
//[RequireComponent(typeof(Animation))]
[AddComponentMenu("MenuSelecter/Icon")]
public class Icon : MonoBehaviour
{
  
   public AnimationClip idle, mouseOver, click;
   public bool idleLoop, mouseOverLoop;
   public string onClickMessage;
   
   enum STATUS
   {
       IDLE,
       MOUSE_OVER,
       CLICK,
   };
   
   STATUS status = STATUS.IDLE;
           
   void Start ()
   {
       gameObject.AddComponent ("Animation");    //ここでAnimationコンポーネントを追加している 
       animation.AddClip (idle, "Idle");
       animation.AddClip (mouseOver, "MouseOver");
       animation.AddClip (click, "Click");
   }
   
   void Update ()
   {
       switch (status) {
       case STATUS.IDLE:
           animation.CrossFade ("Idle");    
           break;
       case STATUS.MOUSE_OVER:
           animation.CrossFade ("MouseOver");    
           break;
       case STATUS.CLICK:
           if (!animation.IsPlaying ("Click")) {
               animation.CrossFade ("Click");
           } else {
               status = STATUS.IDLE;
           }
           break;
       default:
           break;
       }
   }
   
   void OnMouseExit ()
   {
       status = STATUS.IDLE;
   }
   
   void OnMouseOver ()
   {
       if (status != STATUS.CLICK) {
           status = STATUS.MOUSE_OVER;
       }
   }
   
   void OnMouseDown ()
   {
       status = STATUS.CLICK;
   }
}

メニュー



  • 最終更新:2014-06-13 10:38:03

このWIKIを編集するにはパスワード入力が必要です

認証パスワード