Flax per gli sviluppatori Unity

Flax e Unity hanno molte somiglianze (scripting C#, motore fisico) e condividono molti concetti, tuttavia esistono alcune differenze. Questa pagina aiuta gli sviluppatori di Unity Engine a tradurre la loro esperienza Unity esistente nel mondo di Flax Engine.

Editor

Flax e Unity sono molto simili. Puoi vedere le aree evidenziate con codice colore sugli screenshot di entrambi gli editor che hanno funzionalità comuni. Anche il layout di Flax Editor è altamente personalizzabile, quindi puoi trascinare e rilasciare le finestre per adattare l’editor al tuo flusso di lavoro.

Terminologia

Questa sezione contiene i termini più comuni utilizzati in Unity e i loro equivalenti Flax (o equivalenti approssimativi). Le parole chiave di Flax si collegano direttamente a informazioni più approfondite all’interno della documentazione.

Progetto

La struttura dei progetti Flax è simile ai progetti Unity. Invece della cartella Libreria , l’editor utilizza la cartella Cache. Anche la cartella Assets di Unity è divisa in due parti separate: Contenuto e Origine . Tutti i file di script C# si trovano nella directory di origine, quindi ci sono meno problemi con risorse e script.

Flax genera anche una soluzione e file di progetto per gli script C# del tuo gioco.

Risorse

Flax non utilizza i .meta file. Ogni risorsa contiene invece tutte le informazioni sui metadati richieste ed è un file autonomo. I file con questa estensione .flax utilizzano il nostro formato binario che è ben ottimizzato per la scalabilità e lo streaming. Altre risorse vengono solitamente archiviate in Json formato (scene, ambientazioni, ecc.).

Flax supporta i formati di file di risorse più popolari (per modelli e texture 3D) in modo da poter importare i contenuti del gioco.

Consulta la pagina Risorse per ulteriori informazioni sull’importazione e sull’utilizzo delle risorse di gioco.

GameObject vs Actor

Flax non utilizza componenti per costruire la logica degli oggetti della scena usiamo gli attori.
Ogni attore ha il proprio tipo (ad esempio luce puntiforme, box collider) e una raccolta di script allegati. Inoltre non esiste TransformComponent ma gli attori hanno una trasformazione incorporata (meno oggetti, design più ottimizzato per giochi più grandi). Ciò significa che in Flax la gerarchia degli oggetti della scena viene creata con gli attori, non con le trasformazioni come in Unity.

Tuttavia, puoi comunque utilizzare la progettazione del componente entità con i tuoi script perché ogni attore può avere script come in Unity. Invece di utilizzare GetComponent<T>()nei tuoi script, scrivi GetChild<T>()GetScript<T>().

In Flax, un oggetto Scene è anche un Attore, quindi puoi accedervi come qualsiasi altro Attore. Ciò significa che le scene possono avere i propri script ed essere trasformate come altri oggetti.

MonoBehaviour vs Script

Quando si tratta di scripting di giochi, Unity e Flax sono molto simili. Esistono alcune differenze nell’API C# (Flax ha una libreria matematica più grande, è più orientato alle prestazioni e utilizza il nuovo C# 11 tramite .NET 7). In effetti, l’intero editor C# e il motore C++, inclusa l’API di scripting, sono aperti e possono essere trovati qui . Tutti i contributi sono benvenuti.

Inoltre, Flax supporta lo scripting C++ nativo e il Visual Scripting come funzionalità integrata. Non vogliamo limitare i nostri sviluppatori a un solo linguaggio di programmazione per lo sviluppo del gioco poiché l’utilizzo di C++ e Visual Scripting insieme a C# può trarre vantaggio.

Se scrivi script C#, sostituiscili semplicemente MonoBehaviourcon Script poiché ha più senso (ed è più breve da scrivere).

  • Unity
public class MyScript : MonoBehaviour
{
  void Start()
  {
      Debug.Log("It is Unity!");
  }
}
  • Flax
public class MyScript : Script
{
  public override void OnStart()
  {
      Debug.Log("It is Flax!");
  }
}
/ 5
Grazie per aver votato!
mycus
Author: mycus