コード例 #1
0
    //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());
        // -------------------------------------------------------------------
    }
コード例 #2
0
 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
     }
 }
コード例 #3
0
    // ---------------------- 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>());
        }
    }
コード例 #4
0
    // 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
    }