Atrapar ladrones juego

Bien aquí lo que vamos hacer va ser atrapar a los ladrones algo sencillo y fácil de hacer

 

bien seleccionamos nuestro ladrón y vamos al inspector

Bien seleccionamos el Is Trigger como tengo en pantalla en en «Tag » añadimos el nombre de «Ladrón»

En Add Tag añadariamos el Tag yo ya lo tengo añadido pero vosotros podríais añadirlo.

Bien ahora vamos a nuestro personaje que es el Policía y vamos a editar el «Script»

y comenzamos a programar

private void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.CompareTag("Ladron"))
{
Destroy(other.gameObject);

 

 

añadiríamos este script para que nuestro ladrón desaparezca

Ahora lo que vamos hacer va ser crear un contador

 

Bien creamos un «Canvas» y un «TextMexhPro Text»

Ahora vamos al «canvas»

 

Y en nuestros Canvas cambiamos a «Screen Space – Camera» 

 

Y en Render Camera «Nonw (Camera)» seleccionamos nuestra cámara. y ahora vamos al «TextMeshPro Text» y ponemos el nombre

 

Y ponemos el nombre ahora en el mismo canvas creamos una Imagen

ahora creamos una imagen

Y en None (Sprite) seleccionamos una imagen

 

Bien lo único que nos quedaría seria ajustar el tamaño ahora creamos un GambeObjet

 

Bien ahora le ponemos un nombre «ScoreManager» y creamos un script y programamos lo siguiente

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

public class managerscript : MonoBehaviour
{

    public static managerscript instance;
    public TextMeshProUGUI text;
    int score;

    // Start is called before the first frame update
    void Start()
    {
        if (instance == null)
        {
            instance = this;
        }
        
    }

    public void ChangeScore(int coinValue)
    {
        score += coinValue;
        text.text = "X" + score.ToString();
        
        
        

    }
}

una vez programado nos saldra así

y nos saldrá esto en Text tenemos que poner el «TextMeshPro» que hemos creado antes, ahora vamos a nuestro ladrón y le vamos a crear el siguiente Script

 

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

public class puntos : MonoBehaviour
{
    public int coinValue = 1;

    // Start is called before the first frame update
    private void OnTriggerEnter2D(Collider2D other)
    {

        if (other.gameObject.CompareTag("Player"))
        {

            managerscript.instance.ChangeScore(coinValue);

        }

    }

}