private void OnTriggerEnter(Collider other) { if (other.tag == "wall") { Destroy(gameObject); } else if (other.tag == "Bullet") { BulletMove_Planet bullet = other.GetComponent <BulletMove_Planet>(); target = bullet.comeFrom; target.SendMessage("SetMissile"); got(target); } else if (other.tag == "Missile") { MissileMove_Planet missile = other.GetComponent <MissileMove_Planet>(); target = missile.comeFrom; target.SendMessage("SetMissile"); got(target); } }
void FixedUpdate() { Vector3 pos = rigid.position; float v_dir = Input.GetAxis("J2-V-Direct"); float h_dir = Input.GetAxis("J2-H-Direct"); Vector3 direction = Vector3.zero; direction.x = -h_dir; direction.y = v_dir; angle = Mathf.Atan2(direction.x, direction.y) * Mathf.Rad2Deg; Quaternion rotation = Quaternion.AngleAxis(angle, new Vector3(0f, 0f, -1f)); recoil = firepoint.transform.position.y < gameObject.transform.position.y ? new Vector3(0f, 0f, 0f) : recoilIntensity * -(firepoint.transform.position - gameObject.transform.position).normalized; if (direction.magnitude >= 0.5) { transform.GetChild(activeTurret).rotation = rotation; LastDirection = rotation; } else { transform.GetChild(activeTurret).rotation = LastDirection; } float v_axis = Input.GetAxis("J2-Vertical"); float h_axis = Input.GetAxis("J2-Horizontal"); if (h_axis != 0) { MoveAnim.Play("body Animation"); } Vector2 playerDir = new Vector2(gameObject.transform.position.x - aroundPoint.position.x, gameObject.transform.position.y - aroundPoint.position.y); playerDir.Normalize(); Vector2 joyDir = new Vector2(h_axis, v_axis); joyDir.Normalize(); joyDir = joyDir.magnitude > 0.5 ? joyDir : playerDir; float angleDiff = Vector2.Angle(playerDir, joyDir); angleDiff = Vector3.Cross(playerDir, joyDir).z > 0 ? angleDiff : -angleDiff; if (angleDiff != angleDiff) {//see if is null angleDiff = 0f; } if (angleDiff > 0) { angled -= buff * angularSpeed * Time.deltaTime % 360; } else if (angleDiff < 0) { angled += buff * angularSpeed * Time.deltaTime % 360; } //angled = Mathf.Clamp(angled, 0, 360); angled += RollingObj.angularVelocity * Time.deltaTime % 360 * (RollingObj.clockwise ? 1 : -1); float posX = aroundRadius * Mathf.Sin(angled * Mathf.Deg2Rad); float posy = aroundRadius * Mathf.Cos(angled * Mathf.Deg2Rad); transform.position = new Vector3(posX, posy, 0) + aroundPoint.position; transform.rotation = Quaternion.Euler(angled, 90, 0); testbuff(); // if (buff_frozen) // { gameObject.transform.GetChild(0).GetChild(0).GetComponent <MeshRenderer>().material = ice; buff = 0.6f; } else { gameObject.transform.GetChild(0).GetChild(0).GetComponent <MeshRenderer>().material = normal; buff = 1f; } if (Input.GetAxis("J2-Fire2") < 0 && remainAmmo >= 1) //fire { isFireing = true; } else { isFireing = false; } if (isFireing) { shotCounter -= Time.deltaTime; if (shotCounter <= 0) { shotCounter = timeBetweenShots; audioS.volume = 0.3f; if (isMulti) { special -= 1; BulletMove_Planet newBullet1 = Instantiate(bullet, firepoint.position, firepoint.rotation) as BulletMove_Planet; BulletMove_Planet newBullet2 = Instantiate(bullet, firepoint.position, firepoint.rotation) as BulletMove_Planet; newBullet1.gameObject.SetActive(true); newBullet1.transform.Translate(new Vector3(0.2f, 0f, 0f)); newBullet1.transform.Rotate(new Vector3(0f, 0f, -5f)); newBullet1.bulletIniForce = bulletSpeed; newBullet1.SendMessage("SetMulti", true); newBullet2.gameObject.SetActive(true); newBullet2.transform.Translate(new Vector3(-0.2f, 0f, 0f)); newBullet2.transform.Rotate(new Vector3(0f, 0f, 5f)); newBullet2.bulletIniForce = bulletSpeed; newBullet2.SendMessage("SetMulti", true); //CameraShaker.Instance.ShakeOnce(1.5f, 4f, 0f, 1.5f); rigid.AddForce(1.5f * recoil, ForceMode.Impulse); audioS.pitch = Random.Range(1f, 5f); anim.Play("Double gun Animation"); } else { if (isMissile) { special -= 1; MissileMove_Planet newMissile = Instantiate(missile, firepoint.position, firepoint.rotation) as MissileMove_Planet; newMissile.gameObject.SetActive(true); //CameraShaker.Instance.ShakeOnce(2f, 4f, 0f, 1.5f); anim.Play("Missile Launcher Animation"); } else { BulletMove_Planet newBullet = Instantiate(bullet, firepoint.position, firepoint.rotation) as BulletMove_Planet; newBullet.gameObject.SetActive(true); newBullet.bulletIniForce = bulletSpeed; if (isBig) { audioSB.pitch = Random.Range(0.2f, 0.3f); audioSB.volume = 0.5f; special -= 1; newBullet.transform.localScale = new Vector3(1f, 0.1f, 1f); Animator a = newBullet.GetComponent <Animator>(); // ParticleSystem p = newBullet.GetComponent<ParticleSystem>(); a.enabled = false; newBullet.SendMessage("SetBig", true); //CameraShaker.Instance.ShakeOnce(2.5f, 4f, 0f, 3f); rigid.AddForce(2.0f * recoil, ForceMode.Impulse); } else if (isFrozen)// { special -= 1; newBullet.SendMessage("SetFrozen", true); newBullet.transform.GetChild(0).gameObject.SetActive(true); newBullet.GetComponent <ParticleSystemRenderer>().material = ice; //CameraShaker.Instance.ShakeOnce(1.25f, 4f, 0f, 1.5f); rigid.AddForce(recoil, ForceMode.Impulse); audioS.pitch = Random.Range(1f, 5f); } else { //CameraShaker.Instance.ShakeOnce(1.25f, 4f, 0f, 1.5f); rigid.AddForce(recoil, ForceMode.Impulse); audioS.pitch = Random.Range(1f, 5f); } anim.Play("Gun Animation"); } } SetAmmo(-1); if (!isMissile) { if (isBig) { audioSB.Play(); } else { audioS.Play(); } } else { audioM.pitch = Random.Range(0.8f, 1.2f); audioM.Play(); } } } else { //shotCounter = 0; shotCounter -= Time.deltaTime; } AmmoCount.SendMessage("SetAmmo", Mathf.Floor(remainAmmo)); float liftRatio = ((maxLife - 1) / maxLife) * remainLife / maxLife + 1f / maxLife; transform.GetChild(0).transform.localScale = new Vector3(1.5f * liftRatio, 0.3f, 0.5f); LifeCount.SendMessage("SetLife", remainLife); if (remainLife <= 0) { StartCoroutine(DelayTime(0.3f)); Time.timeScale = 0.2f; Application.targetFrameRate = 150; GameObject[] score = GameObject.FindGameObjectsWithTag("Score"); if (!SetScore) { score[0].SendMessage("leftPlus"); SetScore = !SetScore; } } if (isSpecial && special <= 0) { isBig = false; isMulti = false; isMissile = false; isFrozen = false;// gameObject.transform.GetChild(1).transform.localScale = new Vector3(0.3f, 0.3f, 0.3f); this.transform.GetChild(1).GetChild(1).GetChild(1).gameObject.SetActive(false); UseTurret1(); isSpecial = !isSpecial; } SpeCount.SendMessage("SetSpe", special); }