//Methode die vom Spielercharackter aufgreufen wird wenn er eine Waffe aufnimmt public void DrawWeapon(Transform weapon) { if (!weapon || GameObject.ReferenceEquals(this.weapon, weapon)) { return; } // Aktuelle Waffe löschen DropWeapon(); // Waffe aufheben this.weapon = weapon; // Referenz auf neue Waffe // Waffenposition nicht mehr über das Netzwerk senden Network_SendTransform network = this.weapon.GetComponent <Network_SendTransform>(); network.Mode = PropMode.inactive; this.weapon.SetParent(transform); // Waffe an den Waffenanker hängen this.weapon.localPosition = new Vector3(); // Am Anker positionieren this.weapon.localRotation = Quaternion.identity; // Am Anker rotieren // Schießenskript mitteilen mit welcher Waffe geschossen wird fireing.MyWeapon = this.weapon.GetComponent <Weapon>(); // ---------------------- Netzwerkschnittstelle ---------------------- Netzwerk_Simulator.Senden(1, PlayerInfo.PlayerID, PackageType.pickedUp, network.ObjectID.ToString()); // ------------------------------------------------------------------- }
public void DropWeapon() { if (weapon != null) { weapon.transform.SetParent(propsManager); // Waffe vom Waffenanker lösen weapon.Drop(); // Waffe fallen lassen weapon = null; // Referenz auf die Waffe löschen } if (network != null) { network.Mode = PropMode.auto; // Waffenposition wieder vom Netzwerk verarbeiten lassen network.On_Network_DataRecieved -= DropWeapon; network = null; // Referenz auf die Netzwerkkomponente löschen } }
// ---------------------- Netzwerkschnittstelle ---------------------- void Stream(int sender, int empfaenger, PackageType typ, string info) { if (empfaenger != onlinePlayer.PlayerID || typ != PackageType.pickedUp) { return; } string[] msg = info.Split(new char[] { ',' }); int[] hilf = new int[msg.Length]; for (int i = 0; i < msg.Length; i++) { int.TryParse(msg[i], out hilf[i]); } Network_SendTransform x = Network_SendTransform.GetItem(hilf[0]); if (x != null) { DrawWeapon(x.transform.GetComponent <CollectableWeapon>()); } }
// Methode die vom Spielercharackter aufgreufen wird wenn er eine Waffe aufnimmt public void DrawWeapon(CollectableWeapon weapon) { if (!weapon || GameObject.ReferenceEquals(this.weapon, weapon)) { return; } // Aktuelle Waffe löschen DropWeapon(); // Waffe aufheben this.weapon = weapon; this.weapon.PickUp(); network = this.weapon.GetComponent <Network_SendTransform>(); // Referenz auf die Netzwerkkomponente merken network.Mode = PropMode.inactive; // Waffenposition nicht mehr über das Netzwerk senden network.On_Network_DataRecieved += DropWeapon; this.weapon.transform.SetParent(transform); // Waffe an den Waffenanker hängen this.weapon.transform.localPosition = new Vector3(); // Am Anker positionieren this.weapon.transform.localRotation = Quaternion.identity; // Am Anker rotieren }