void Update() { if (MeteorsActive == true) { if (_meteorConroller != null) { List <GameObject> meteorList = _meteorConroller.GetObjectList(); foreach (var meteor in meteorList) { if (meteor.gameObject.activeSelf == true) { Vector3 eVec = meteor.transform.position; //cities MeteorSpriteObj meteorScript = meteor.GetComponent <MeteorSpriteObj> (); float eRad = meteorScript.CircleCollider.radius; if (meteorScript.ExplodePhase == true) { List <City> cityList = _cityController.GetCityList(); foreach (var city in cityList) { City c = city.GetComponent <City> (); if (c.CheckCircleCollision(eVec, eRad)) { Debug.Log("City Hit"); //apply damage c.ApplyDamage(meteorScript.Power); } } } //bullets List <GameObject> canonList = _canonController.GetObjectList(); foreach (var canonBall in canonList) { SpriteCanonObject ball = canonBall.GetComponent <SpriteCanonObject> (); if (ball._State == SpriteCanonObject.eState.Exploding) { if (ball.CheckCircleCollision(eVec, eRad)) { //apply damage to meteor meteorScript.ApplyDamage(1); } } } } } } } }
private void InsertMeteor() { Vector3 position = StartPosition.transform.position; float rx = (float)Random.Range(-(StartAreaX / 3), StartAreaX / 3); float ry = (float)Random.Range(-(StartAreaY / 3), StartAreaY / 3); float rz = 0f; if (ZLevels != null) { int len = ZLevels.Length; int index = (int)Random.Range(0, len); rz = ZLevels[index]; } GameObject go = null; objectPool.TryGetNextObject(new Vector3(position.x + rx, position.y + ry, rz), new Quaternion(), out go); //Debug.Log ("scaleX = " + scale.x.ToString() + " scaleY = " + scale.y.ToString() + " rx = " + rx + " ry = " + ry); if (go != null) { MeteorSpriteObj objectScript = go.GetComponent <MeteorSpriteObj> (); float speedRange = (float)Random.Range(-SpeedRange, SpeedRange); float speed = WindSpeed + speedRange; float ex = EndPosition.transform.position.x; float ey = EndPosition.transform.position.y; float offsetx = (float)Random.Range(-(EndAreaX / 3f), EndAreaX / 3f); float offsety = (float)Random.Range(-(EndAreaY / 3f), EndAreaY / 3f); objectScript.StartColor = StartColor; objectScript.TravelColor = TravelColor; objectScript.ExplodeColor = ExplodeColor; objectScript.StartAnim(ex + offsetx, ey + offsety, rz, speed); //float endPointX = ex + offsetx; //float endPointY = ey + offsety; //Debug.Log ("offsetx = " + offsetx + " offsety = " + offsety + " endPointX = " + endPointX + " endPointY = " + endPointY); } }