Skrypt na liczenie punktów

Programowanie w Unity.

Re: Skrypt na liczenie punktów

Postprzez Wichur » 16 Cze 2020, 05:18

Czy używasz tego skryptu więcej niż raz?
Awatar użytkownika
Wichur
 
Posty: 134
Rejestracja: 19 Gru 2017, 10:33
Miejscowość: Pruszcz Gdański
Has thanked: 0 time
Been thanked: 0 time

Re: Skrypt na liczenie punktów

Postprzez Rundest » 16 Cze 2020, 05:38

No naprawdę nie wiem


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PickUpCoin : MonoBehaviour
{
public GameObject Coin;
public Text Coinupscore;
int points;


private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("Player"))
{
points++;
Coinupscore.text = points.ToString();
Destroy(Coin);
}
}
}
Rundest
 
Posty: 18
Rejestracja: 12 Sty 2020, 12:32
Has thanked: 0 time
Been thanked: 0 time

Re: Skrypt na liczenie punktów

Postprzez Wichur » 16 Cze 2020, 07:11

Ten objekt masz na "Coinsach" i pewnie jest uzyty wiele razy na scenie?

Powinienes miec skrypt typu Singleton, ktory bedzie caly czas na scenie i tam powinien byc umieszczony licznik bo w tym wypadku wychodzi, ze caly czas bedzie miec wartosc 1.

Najprostszy to:

Kod: Zaznacz wszystko
public class GameManager
{
public static GameManager Instance;

void Awake()
{
Instance = this;
DontDestroyOnLoad(this);
}

public Text Coinupscore;
public int points = 0;

public void AddPoint()
{
points++;
Coinupscore.Text = points.toString();
}
}


Wtedy w skrypcie PickUpCoin powinno byc
Kod: Zaznacz wszystko
private void OnTriggerEnter2D(Collider2D collision)
{
GameManager.Instance.AddPoint();
}
Awatar użytkownika
Wichur
 
Posty: 134
Rejestracja: 19 Gru 2017, 10:33
Miejscowość: Pruszcz Gdański
Has thanked: 0 time
Been thanked: 0 time

Re: Skrypt na liczenie punktów

Postprzez Rundest » 19 Cze 2020, 06:19

A i jest pewien problem przy DontDestroyOnLoad(this) mi zaznacza jako błąd a konkretnie to tylko this

I taki jest problem:
Assets\Scripts\PickUpCoin.cs(15,31): error CS1503: Argument 1: cannot convert from 'PickUpCoin.GameManager' to 'UnityEngine.Object'
Rundest
 
Posty: 18
Rejestracja: 12 Sty 2020, 12:32
Has thanked: 0 time
Been thanked: 0 time

Re: Skrypt na liczenie punktów

Postprzez Wichur » 19 Cze 2020, 08:59

To ma byc osobny skrypt
Awatar użytkownika
Wichur
 
Posty: 134
Rejestracja: 19 Gru 2017, 10:33
Miejscowość: Pruszcz Gdański
Has thanked: 0 time
Been thanked: 0 time

Re: Skrypt na liczenie punktów

Postprzez Rundest » 19 Cze 2020, 19:00

Nadal nie wiem co mam źle oto 2 kody:

public class PickUpCoin2 : MonoBehaviour
{
public class GameManager
{
public static GameManager Instance;

void Awake()
{
Instance = this;
DontDestroyOnLoad(this);
}

public Text Coinupscore;
public int points = 0;

public void AddPoint()
{
points++;
Coinupscore.text = points.ToString();
}
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------
public class PickUpCoin : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D collision)
{
GameManager.Instance.AddPoint();
}
}
Rundest
 
Posty: 18
Rejestracja: 12 Sty 2020, 12:32
Has thanked: 0 time
Been thanked: 0 time

Re: Skrypt na liczenie punktów

Postprzez Ether_141 » 20 Cze 2020, 00:28

Wg. mnie powinieneś sobie dać z tym spokój bo wiać, że nie masz za bardzo pojęcia o tym co robisz. Zajmij się podstawami programowania w C#.

Co do tego kodu, klasa GameManager ma dziedziczyć po MonoBehaviour i nie ma być zadeklarowana w innej klasie, tak jak ty to zrobiłeś.
Awatar użytkownika
Ether_141
 
Posty: 506
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Poprzednia

Wróć do Skrypty

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość

cron