/// <summary> /// 範囲ボム弾発射時 /// </summary> public override void OnShoot(BombBullet bullet) { //自分しかいないのでイベント送信の必要なし if (PhotonNetwork.CurrentRoom.PlayerCount == 1) { return; } var dto = new BombBulletDto(); dto.timeStamp = bullet.timeStamp; dto.dropPosition = BattleGlobal.instance.viewRotation * bullet.dropPosition; dto.barrelLocalEulerAngles = this.turretBase.rotationParts.localEulerAngles; PhotonNetwork.RaiseEvent( (byte)MultiEventCode.ShootBomb, dto.GetBinary(), RaiseEventOptions.Default, SendOptions.SendReliable ); }
/// <summary> /// ボム発射イベント受信時 /// </summary> public void OnShootBomb(object value) { var dto = new BombBulletDto(); dto.SetBinary((byte[])value); //弾丸生成 var bulletPrefab = this.fvaBulletAsset.handle.asset as BulletBase; var bulletBase = this.turretBase.CreateBullet(bulletPrefab, BattleGlobal.instance.bulletArea); bulletBase.transform.up = this.cachedTransform.localRotation * Vector2.up; bulletBase.SetParticleLayer(BattleGlobal.instance.bulletCanvas); //砲身回転 this.StartBarrelRotation(dto.barrelLocalEulerAngles); //制御開始 var controller = new BombBullet.Controller(); this.fvaControllers.Add(controller); controller.Start(this, bulletBase, BattleGlobal.instance.viewRotation * dto.dropPosition, null, null); }