// Use this for initialization void Start() { Actor = GetComponent <ActorBehavior>(); PVel = GetComponent <Rigidbody2D>(); Actorbehavior = GetComponent <ActorBehavior>(); Multi = GetComponent <StatusMultiple>(); SceneManager.activeSceneChanged += ActiveSceneLD; }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "Player") { StatusMultiple StatusMultiple = collision.gameObject.GetComponent <StatusMultiple>(); PlayerStatus Status = collision.gameObject.GetComponent <PlayerStatus>(); ActorBehavior Actor = collision.gameObject.GetComponent <ActorBehavior>(); AudioSource Audio = gameObject.AddComponent <AudioSource>(); if (ChangeGuns != null && ChangeGuns.GetComponent <ShooterBehavior>()) { Status.Guns = ChangeGuns; } if (GetSound != null) { Audio.PlayOneShot(GetSound); } gameObject.GetComponent <Renderer>().enabled = false; Actor.Life += AddLife; Actor.MaxLife += AddMaxlife; StatusMultiple.MulSpeed += AddMulSpeed; StatusMultiple.MulDamage += AddMulDamage; GameObject Script = new GameObject("ItemScript") as GameObject; ItemScriptAppears itemScript = Script.AddComponent <ItemScriptAppears>(); itemScript.text = GetScript; itemScript.font = Scriptfont; if (Actor.Energy < Actor.MaxEnergy * 2) { if (Actor.Energy >= Actor.MaxEnergy) { Actor.Energy += AddEnergy / 5; Actor.MaxEnergy += AddEnergy / 50; } if (Actor.Energy < Actor.MaxEnergy) { Actor.Energy += AddEnergy; } } Destroy(gameObject, GetSound.length); } }
// Use this for initialization IEnumerator Start() { bool reloadSoundToggle = true; if (GameObject.Find("WorldSetting")) { Cursor.SetCursor(GameObject.Find("WorldSetting").GetComponent <Level>().Cursors, new Vector2(16f, 16f), cursorMode: 0); } statMul = GetComponentInParent <StatusMultiple>(); TotalMagcap = ammo.MagCap + statMul.AddMagazine; Audio = GetComponent <AudioSource>(); Actor = transform.root.GetComponent <ActorBehavior>(); bool isLaser = ammo.Shot.GetComponent <BulletStatus>().Lazer; while (true) { if (Reloading) { if (sound.Reload_Start != null && Audio.clip != sound.Reload_Start) { Audio.clip = sound.Reload_Start; Audio.Play(); } yield return(new WaitForSeconds(stat_Time.Reload)); if (sound.Reload_End != null && Audio.clip != sound.Reload_End) { Audio.clip = sound.Reload_End; Audio.Play(); } if (Actor.Energy < ammo.UseEnergyByAmmo * (TotalMagcap / (1 + stat_Number.Repeat)) && ammo.UseEnergyByAmmo > 0) { // もしアクターのエネルギーが満タンに出来ない時 ammo.RestBullet = Mathf.CeilToInt(Actor.Energy / (ammo.UseEnergyByAmmo * (TotalMagcap / (1 + stat_Number.Repeat))) * TotalMagcap); } else { ammo.RestBullet = TotalMagcap; } Reloading = false; yield return(null); } Chargetime = ShootReadyupTime(Chargetime); if (Chargetime > 0) { Debug.Log("Chargetime :" + Chargetime); } if (stat_Time.WarmUp > 0) { if (Chargetime == 0.1f && sound.warmUp != null) { Audio.clip = sound.warmUp; Audio.Play(); } } //発射レディ if ((ammo.RestBullet > 0 && Reloading == false) && ((stat_Time.WarmUp > 0 && Chargetime > stat_Time.WarmUp && ( (Chargetime > 0 && ammo.isGunAuto) || (Chargetime == -1 && !ammo.isGunAuto)) ) || (stat_Time.WarmUp <= 0 && ( (Chargetime > 0 && ammo.isGunAuto) || (Chargetime == 0.1f && !ammo.isGunAuto)) )) ) { NextShotReady = false; if (isLaser && LazCaster == null)//レーザ用に発射口を出す { LazCaster = new GameObject("LazCaster"); LazCaster.transform.SetParent(transform, false); } for (int j = 0; j < stat_Number.Repeat + 1; j++)//バースト射撃 { Actor.Energy -= ammo.UseEnergyByAmmo / stat_Number.Repeat; for (int i = 0; i < stat_Number.Burst + statMul.AddBurst + 1; i++)//追加発射数 { Debug.Log("Shot"); //Ray Mode: if (isLaser) { shotrotate = (shotD8pos + ammo.Shot.GetComponent <BulletStatus>().bulletunder / 2); bullet = Instantiate(ammo.Shot, shotrotate, Quaternion.Euler(0, 0, (GunRotate + Random.Range (-stat_Number.Accuracy - (stat_Number.RecoilFreq * Chargetime), stat_Number.Accuracy) + (stat_Number.RecoilFreq * Chargetime))) ) as GameObject; if (LazCaster && bullet) { bullet.transform.SetParent(LazCaster.transform, false); } Debug.Log("!"); } //Bullet Mode: else { shotrotate = this.transform.position + Quaternion.Euler(0, 0, GunRotate) * (shotD8pos + ammo.Shot.GetComponent <BulletStatus>().bulletunder / 2); bullet = Instantiate(ammo.Shot, shotrotate, Quaternion.Euler(0, 0, (GunRotate + Random.Range (-stat_Number.Accuracy - (stat_Number.RecoilFreq * Chargetime), stat_Number.Accuracy) + (stat_Number.RecoilFreq * Chargetime))) ) as GameObject; Debug.Log("!"); } } Instantiate(ammo.splash, this.transform.position + Quaternion.Euler(0, 0, GunRotate) * shotD8pos, Quaternion.Euler(0, 0, GunRotate), parent: transform); //発射時マズルフラッシュを出す if (sound.Shot != null) { Audio.clip = sound.Shot; Audio.Play();//ショットサウンド… } --ammo.RestBullet; if (ammo.RestBullet <= 0) { break; } yield return(new WaitForSeconds(stat_Time.Cooling)); } yield return(new WaitForSeconds(stat_Time.Wait)); } else { NextShotReady = true; } yield return(null); if ((Actor.Energy >= ammo.UseEnergyByAmmo) && (ammo.RestBullet <= 0 && Chargetime == 0.1f) || (Reload_Pressed() && ammo.RestBullet < TotalMagcap) ) { Reloading = true; } yield return(null); } }