Meddelande

Du befinner dig just nu på en äldre version av Pluggakuten, gamla.pluggakuten.se. Nya Pluggakuten lanserades den 6 februari 2017 och du finner forumet på www.pluggakuten.se.

På gamla.pluggakuten.se kan du fortfarande läsa frågorna och svaren som ställts, men du kan inte skapa ett nytt konto eller nya trådar. Är du redan medlem kan du däremot fortfarande logga in och svara i befintliga trådar. Nya frågor och nytt konto skapar du på det nya forumet, välkommen dit!

Unity scripting C# - 2 spelare med samma script

oskillz
Medlem

Offline

Registrerad: 2016-04-02
Inlägg: 34

Unity scripting C# - 2 spelare med samma script

Jag jobbar med ett 2D plattformsspel som har två karaktärer som använder samma script. Variablerna som ska vara separerade från spelarna är tilldelade utanför scriptet genom att dra in komponenter i scripten.

Mitt problem är att jag nu har funktionallitet som gör så att spelarna kan lägga ner bomber samt skjuta, men att all kod för detta ligger i spelarscripet. Jag skulle vilja kunna skapa separata script som hanterar t.ex timern för bomben eller hastigheten för skotten..

Jag villl kunna säga åt t.ex bombscriptet att:

Kod:

if (Player.DroppedBomb) 
{
      bombTimer += time.DeltaTime;
      if (bomBtimer > 1)
        {
                bombActivated = true;
        }
}

Men jag vill kunna göra detta för båda spelarna utan att behöva skriva allt två gånger, jag vet att jag kan skriva:

Kod:

    public Player player1;
    public Player player2;

    public float bombTimerPlayer1;
    public float bombTimerPlayer2;

    void Start()
    {
        player1 = player1.GetComponent<Player>();
        player2 = player2.GetComponent<Player>();
    }

    void Update()
    {
        if (player1.activatedBomb)
        {
            bombTimerPlayer1 += Time.deltaTime;
        }

        if (player2.activatedBomb)
        {
            bombTimerPlayer2 += Time.deltaTime;
        }
    }

Men det blir inte bra om jag skulle lägga till fler spelare och behöva skrva allt för varje karaktär. Finns det något smartare sätt att ordna detta på?

Jag funderar på om jag kan använda mig av min variabel PlayerNumber (som är satt till 1 respektive 2 separat för spelarna) för att kunna göra generella metoder som kollar: om spelarscriptet med PlayerNumber 1 sätter sin bool activatedBomb till true: starta timern. Dock så skulle inte det komma runt att jag skulle behöva olika timers i bombscriptet för de olika spelarna.

Senast redigerat av oskillz (2016-04-23 13:43)

 


Sidfot

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson

Powered by Mattecentrum
 |  Denna sida använder cookies |  Kontakta oss |  Feedback |