22-04-2016, 09:17 AM
(Questo messaggio è stato modificato l'ultima volta il: 22-04-2016, 09:20 AM da Master Gabriel.)
Dunque, ti serve uno script che quando clicchi su un bottone con il mouse cambia l'immagine?
Crea un oggetto vuoto con solo uno spriterenderer. Applica la prima immagine allo spriterenderer, e posiziona l'oggetto in modo che "copra" la scena principale. Potresti anche fare con due scene diverse, che quando le immagini sono finite il gioco carica la scena principale, ma non cambia molto. Ora crea un'oggetto contenente uno spriterenderer con il tasto da premere. Aggiungici un collider, di qulaunque tipo. Posizionalo dove più ti aggrada
Attacca questo script all'oggetto del tasto:
E' un pò grezzo, ma dovrebbe funzionare lo stesso
Ora nell'inspector nella variabile sfondo dello script selezioni l'oggetto contenente la prima immagine, poi nelle variabili frame1, 2 e 3 ci metti le immagini che vuoi che si scambino con la prima.
Prova a vedere se va
Crea un oggetto vuoto con solo uno spriterenderer. Applica la prima immagine allo spriterenderer, e posiziona l'oggetto in modo che "copra" la scena principale. Potresti anche fare con due scene diverse, che quando le immagini sono finite il gioco carica la scena principale, ma non cambia molto. Ora crea un'oggetto contenente uno spriterenderer con il tasto da premere. Aggiungici un collider, di qulaunque tipo. Posizionalo dove più ti aggrada
Attacca questo script all'oggetto del tasto:
Codice:
using UnityEngine;
using System.Collections;
public class SwitchBackgound : MonoBehaviour
{
public GameObject sfondo; //questo è l'oggetto sfondo
public Sprite frame1; //queste sono le immagini che si scambieranno con la prima
public Sprite frame2; //io ne ho messe tre, puoi aggiungerne o toglierne a piacimento
public Sprite frame3;
private int counter = 0;
void OnMouseDown()
{
if (counter == 0)
{
sfondo.GetComponent<SpriteRenderer>().sprite = frame1;
counter++;
}
else if (counter == 1)
{
sfondo.GetComponent<SpriteRenderer>().sprite = frame2;
counter++;
}
else if(counter == 2)
{
sfondo.GetComponent<SpriteRenderer>().sprite = frame3;
counter++;
}
else if(counter == 3)
{
Destroy(sfondo.gameObject);
Destroy(gameObject);
}
}
}
E' un pò grezzo, ma dovrebbe funzionare lo stesso
Ora nell'inspector nella variabile sfondo dello script selezioni l'oggetto contenente la prima immagine, poi nelle variabili frame1, 2 e 3 ci metti le immagini che vuoi che si scambino con la prima.
Prova a vedere se va