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; }