/// <summary> /// OnDestroy /// </summary> protected override void OnDestroy() { if (this.bullet != null && this.bullet.gameObject != null) { Destroy(this.bullet.gameObject); this.bullet = null; } base.OnDestroy(); }
/// <summary> /// セットアップ /// </summary> public override void Setup(Turret turret, Master.FvAttackData master) { base.Setup(turret, master); //弾発射 this.bullet = this.turret.CreateBullet<LaserBeamBullet>(this.GetBulletPrefab()); this.bulletTransform = this.bullet.transform as RectTransform; this.bullet.bulletBase.landingEffectPrefab = this.turret.turretBase.bulletPrefab.landingEffectPrefab; this.bullet.Setup(true, this.master.power, 0, turret.bulletData, this.skillGroupManager); //弾発射通知 this.turret.OnShoot(this.bullet); //制御開始 this.controller.Start(false, this.turret, this.bullet.bulletBase, this.OnFinished); //メインステートへ this.stateAction = this.MainState; }
/// <summary> /// 波動砲発射時 /// </summary> public override void OnShoot(LaserBeamBullet bullet) { //自分しかいないのでイベント送信の必要なし if (PhotonNetwork.CurrentRoom.PlayerCount == 1) { return; } var dto = new BulletDto(); dto.timeStamp = BattleGlobal.GetTimeStamp(); dto.bulletLocalPosition = bullet.transform.localPosition; dto.bulletLocalEulerAngles = bullet.transform.localEulerAngles; dto.barrelLocalEulerAngles = this.turretBase.rotationParts.localEulerAngles; //イベント送信 PhotonNetwork.RaiseEvent( (byte)MultiEventCode.ShootLaserBeam, dto.GetBinary(), RaiseEventOptions.Default, SendOptions.SendReliable ); }
/// <summary> /// 波動砲発射時 /// </summary> public virtual void OnShoot(LaserBeamBullet bullet){}