/// <summary> /// 弾丸発射時 /// </summary> public override void OnShoot(Bullet bullet) { bullet.SetTimeStamp(BattleGlobal.GetTimeStamp()); bullet.SetOnDestroyCallback(this.OnDestroyBullet); //発射した弾丸の速度や角度の情報 var data = new BulletDto(); data.bulletBase = bullet.bulletBase; data.isNormalBullet = bullet is NormalBullet; data.id = this.shootCount; data.timeStamp = bullet.bulletBase.movement.timeStamp; data.speed = bullet.bulletBase.movement.speed; data.bulletLocalPosition = bullet.transform.localPosition; data.bulletLocalEulerAngles = bullet.transform.localEulerAngles; data.barrelLocalEulerAngles = this.turretBase.rotationParts.localEulerAngles; this.bulletList.Add(data); //プロパティ更新 PhotonNetwork.LocalPlayer.SetCustomProperties(new PhotonHashtable { { PlayerPropertyKey.BulletList, this.bulletList.ToBinary() } }); this.shootCount++; }
/// <summary> /// セットアップ /// </summary> public void Setup( bool isFvAttack, uint power, uint fvRate, Master.BulletData bulletData, SkillGroupManager skill, Turret turret) { base.Setup(isFvAttack, power, fvRate, bulletData, skill); //タイムスタンプ取得 this.timeStamp = BattleGlobal.GetTimeStamp(); //制御開始 this.controller.Start(turret, this.bulletBase, this.OnHit, this.OnFinished); }
/// <summary> /// セットアップ /// </summary> public void Setup( bool isFvAttack, uint power, uint fvRate, Master.BulletData bulletData, SkillGroupManager skill, Turret turret, Vector2 dropPosition) { base.Setup(isFvAttack, power, fvRate, bulletData, skill); this.timeStamp = BattleGlobal.GetTimeStamp(); this.dropPosition = dropPosition; //制御開始 this.controller.Start(turret, this.bulletBase, dropPosition, this, this.OnFinished); }
/// <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 ); }