Sto cercando una soluzione per un comportamento "Opzioni clic destro".
Fondamentalmente qualsiasi oggetto in un gioco, se cliccato con il tasto destro, può visualizzare una serie di opzioni basate su qualunque sia l'oggetto.
Esempi di clic con il tasto destro per diversi scenari :
Inventario: il casco mostra le opzioni (Equipaggia, Usa, Rilascia, Descrizione)
Banca: il casco mostra le opzioni (Prendi 1, Prendi X, Prendi tutto, Descrizione)
Piano: il casco mostra le opzioni (Take, Walk Here, Description)
Ovviamente ogni opzione indica in qualche modo un certo metodo che fa ciò che dice. Questo è parte del problema che sto cercando di capire. Con così tante opzioni di potenziamento per un singolo oggetto, come avrei progettato le mie lezioni in modo tale da non essere estremamente disordinate?
- Ho pensato all'eredità, ma potrebbe essere molto lungo e la catena potrebbe essere enorme.
- Ho pensato di utilizzare le interfacce, ma questo probabilmente mi limiterebbe un po 'poiché non sarei in grado di caricare i dati degli articoli da un file Xml e inserirli in una classe "Item" generica.
Sto basando il mio risultato finale desiderato su un gioco chiamato Runescape. Ogni oggetto può essere cliccato con il tasto destro del mouse nel gioco e in base a ciò che è e dove si trova (inventario, piano, banca, ecc.) Visualizza un diverso set di opzioni disponibili per il giocatore con cui interagire.
Come farei per raggiungere questo obiettivo? Quale approccio devo adottare prima di tutto, decidere quali opzioni DOVREBBERO essere visualizzate e una volta cliccate, come chiamare il metodo corrispondente.
Sto usando C # e Unity3D, ma tutti gli esempi forniti non devono essere correlati a nessuno dei due in quanto sto seguendo uno schema al contrario del codice reale.
Qualsiasi aiuto è molto apprezzato e se non sono stato chiaro nella mia domanda o nei risultati desiderati, si prega di inviare un commento e lo farò al più presto.
Ecco cosa ho provato finora:
- In realtà sono riuscito a implementare una classe "Item" generica che contiene tutti i valori per diversi tipi di oggetti (attacco extra, difesa extra, costo ecc ...). Queste variabili vengono popolate da dati provenienti da un file Xml.
- Ho pensato di collocare ogni singolo metodo di interazione possibile all'interno della classe Item, ma penso che questa sia incredibilmente disordinata e povera. Probabilmente ho adottato un approccio sbagliato per l'implementazione di questo tipo di sistema usando solo una classe e non sottoclassificando su elementi diversi, ma è l'unico modo in cui posso caricare i dati da un Xml e archiviarli nella classe.
- Il motivo per cui ho scelto di caricare tutti i miei oggetti da un file Xml è dovuto al fatto che questo gioco ha la possibilità di oltre 40.000 articoli. Se la mia matematica è corretta, una classe per ogni articolo è molte classi.