void OnTriggerEnter(Collider _coll)
 {
     _rno = RNO.EXPLODE;
     mAnm.PlayAnimation("explode");
     if (Random.value < 0.1f)
     {
         GameObject itemObj = GameObject.Instantiate(dropItemPrefab, transform.position, Quaternion.identity) as GameObject;
         itemObj.transform.parent = transform.parent;
         itemObj.SendMessage("SM_setSpeed", mLocalSpeed);
     }
 }
    // Update is called once per frame
    void Update()
    {
        if (_rno == RNO.MOVE)
        {
            Vector3 vec = mDestLocalPos - transform.localPosition;
            float   spd = 0.08f * Time.deltaTime;
            if (vec.magnitude < spd)
            {
                _rno = RNO.IDLE;
                transform.localPosition = mDestLocalPos;
            }
            Vector3 dirVec = vec.normalized * spd;
            transform.localPosition += dirVec;
            transform.rotation       = TmMath.LookRotation2D(dirVec, Vector2.up);
            return;
        }
        if (mBulletTimer > 0)
        {
            mBulletTimer -= Time.deltaTime;
        }
        float      distSqMin = distMinSq;
        GameObject em        = null;

        GameObject[] ems = mGame.emList;
        foreach (GameObject go in ems)
        {
            float distSqc = (go.transform.position - transform.position).sqrMagnitude;
            if (distSqc < distSqMin)
            {
                distSqMin = distSqc;
                em        = go;
            }
        }
        if (em != null)
        {
            Vector3 sizeVec = em.transform.position - transform.position;
            if (sizeVec.sqrMagnitude < distMinSq)
            {
                Vector3 emWorldSpd = em.GetComponent <enemyBase>().worldSpeed;
                sizeVec            = getClossPoint(em.transform.position, emWorldSpd, transform.position, bulletSpeed) - transform.position;
                transform.rotation = TmMath.LookRotation2D(sizeVec, Vector2.up);
            }
            if (mBulletTimer <= 0.0f)
            {
                mBulletTimer += Random.Range(bulletInterval * 0.9f, bulletInterval * 1.1f);
                GameObject bl = GameObject.Instantiate(bulletPrefab, transform.position, transform.rotation) as GameObject;
                bl.tag = "tagBullet";
                bl.transform.parent = transform.parent;
                bulletParam param = new bulletParam(bulletSpeed, 1.0f, bulleteLifeTime);
                bl.SendMessage("SM_SetBulletSpeed", param);
            }
        }
    }
    // Use this for initialization
    void Start()
    {
        if (mPosList == null)
        {
            return;
        }

        _rno = RNO.MOVE;
        mAnm = GetComponent <TmSpriteAnim2D>();
        mAnm.SetMeshColor(new Color(Random.Range(0.3f, 0.9f), Random.Range(0.3f, 0.9f), Random.Range(0.3f, 0.8f), 1.0f));
        mDistId = 0;
        Vector2 pos = mPosList[mDistId];

        pos.y += (1.0f / (float)GameScript.MESH_H) * 3.0f;
        transform.localPosition = mLocalPosOld = pos;
    }
 void Awake()
 {
     _rno = RNO.IDLE;
 }
 //------------------------------------------------------
 public void SM_SetDestLocalPos(Vector3 _pos)
 {
     mDestLocalPos = _pos;
     _rno          = RNO.MOVE;
 }