• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Script cambio immagine
#1
Ciao a tutti.
Sarò veloce, in pratica al cambio dell'arma, di cui si occuperà uno script esterno o comunque lo integrerò dopo, ho bisogno che appaia un'immagine a seconda dell'arma utilizzata.
L'unico problema è che non so come fare! Vi giuro ho provato di tutto, aiutatemi voi, è urgente.
Questo è il codice che per adesso stavo facendo, anche se manca di un po' di roba ditemi solo come si fa questo switch di immagini, al resto ci penso io!
Codice:
using UnityEngine;
using System.Collections;

public class ChangeGun3 : MonoBehaviour
{

    public Texture textureArma;

    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha3))
        {
          
        }

    }

    void OnGUI()
    {
        GUILayout.BeginArea(new Rect(700, 100, 500, 500));
        GUI.DrawTexture(new Rect(10, 10, 100, 100), textureArma, ScaleMode.ScaleToFit, true);
        GUILayout.EndArea();
    }
}
 
Rispondi
#2
Ciao, io per un problema simile al tuo avevo utilizzato gli sprite che definivo con:

public Sprite nome_sprite1;
public Sprite nome_sprite2;
public Sprite nome_sprite3;

che poi cambiavo con il comando:

GameObject.Find ("nome").GetComponentInChildren<Image> ().sprite = nome_sprite1;

Dove al posto di "nome" metterai il nome del gameobject (es. se si chiama arma metterai GameObject.Find ("arma") ).
Gli sprite gli inserirai dall'inspector di unity.
Ricordati di controllare che le immagini siano definite come sprite.(clicca sull'immagine importata, nell'inspector ci sarà la voce "Texture Type" con a fianco un menu a tendina dove selezionerai "Sprite 2D and UI")

Spero di esserti stato d'aiuto, in caso non esitare a chiedere!Smile
 
Rispondi
#3
(07-12-2015, 11:04 AM)Zettamax Ha scritto: Ciao, io per un problema simile al tuo avevo utilizzato gli sprite che definivo con:

public Sprite nome_sprite1;
public Sprite nome_sprite2;
public Sprite nome_sprite3;

che poi cambiavo con il comando:

GameObject.Find ("nome").GetComponentInChildren<Image> ().sprite = nome_sprite1;

Dove al posto di "nome" metterai il nome del gameobject (es. se si chiama arma metterai GameObject.Find ("arma") ).
Gli sprite gli inserirai dall'inspector di unity.
Ricordati di controllare che le immagini siano definite come sprite.(clicca sull'immagine importata, nell'inspector ci sarà la voce "Texture Type" con a fianco un menu a tendina dove selezionerai "Sprite 2D and UI")

Spero di esserti stato d'aiuto, in caso non esitare a chiedere!Smile

Grazie per la risposta ma non capisco, in che punto dello schermo compaiono le immagini? e quale gameobject devo inserire?
 
Rispondi
#4
Mi sono dimenticato di dirti che io utilizzo il nuovo sistema di UI di unity.
Nel tuo caso credo che sia più facile fare così:
Definisci le immagini delle armi come hai definito la prima ovvero(in questo caso ho fatto per 3 armi ma se tu ne hai di più ne definirai di più):

public Texture textureArma1;
public Texture textureArma1;
public Texture textureArma1;

poi definisci una variabile int:

int arma =1;

poi nella funzione OnGUI() metti:

GUILayout.BeginArea(new Rect(700, 100, 500, 500));
if(arma = 1)
{
GUI.DrawTexture(new Rect(10, 10, 100, 100), textureArma1, ScaleMode.ScaleToFit, true);
}
if(arma = 2)
{
GUI.DrawTexture(new Rect(10, 10, 100, 100), textureArma2, ScaleMode.ScaleToFit, true);
}
if(arma = 3)
{
GUI.DrawTexture(new Rect(10, 10, 100, 100), textureArma3, ScaleMode.ScaleToFit, true);
}
GUILayout.EndArea();

mentre nella funzione Update metti:

if (Input.GetKeyDown(KeyCode.Alpha3))
{
if(arma = 3) //qui come valore metti il numero massimo di armi da switchare
{
arma = 1;
}
else
{
arma +=1;
}
}

Spero di esserti stato d'aiuto Smile
 
Rispondi
#5
(07-12-2015, 08:13 PM)Zettamax Ha scritto: Mi sono dimenticato di dirti che io utilizzo il nuovo sistema di UI di unity.
Nel tuo caso credo che sia più facile fare così:
Definisci le immagini delle armi come hai definito la prima ovvero(in questo caso ho fatto per 3 armi ma se tu ne hai di più ne definirai di più):

public Texture textureArma1;
public Texture textureArma1;
public Texture textureArma1;

poi definisci una variabile int:

int arma =1;

poi nella funzione OnGUI() metti:

GUILayout.BeginArea(new Rect(700, 100, 500, 500));
if(arma = 1)
{
GUI.DrawTexture(new Rect(10, 10, 100, 100), textureArma1, ScaleMode.ScaleToFit, true);
}
if(arma = 2)
{
GUI.DrawTexture(new Rect(10, 10, 100, 100), textureArma2, ScaleMode.ScaleToFit, true);
}
if(arma = 3)
{
GUI.DrawTexture(new Rect(10, 10, 100, 100), textureArma3, ScaleMode.ScaleToFit, true);
}
GUILayout.EndArea();

mentre nella funzione Update metti:

if (Input.GetKeyDown(KeyCode.Alpha3))
{
if(arma = 3) //qui come valore metti il numero massimo di armi da switchare
{
arma = 1;
}
else
{
arma +=1;
}
}

Spero di esserti stato d'aiuto Smile

Ommio dio era così semplice? Non ci credo. Grazie Grazie Grazie!!
 
Rispondi
  


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Sistema di cambio scena 93sunderland 3 444 14-05-2016, 08:48 AM
Ultimo messaggio: 93sunderland
  Menù di cambio del player Master Gabriel 4 667 25-02-2015, 08:57 AM
Ultimo messaggio: Master Gabriel
  Cambio arma Idepahio 2 739 01-09-2013, 10:03 PM
Ultimo messaggio: Idepahio

Vai al forum:


Browsing: 1 Ospite(i)