[DBAL] ArrayModifier - Création de Chaine + le top 10 des scripts à avoir sous Unity?

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Wadison
Messages : 19
Inscription : 23 Sep 2017 22:31

[DBAL] ArrayModifier - Création de Chaine + le top 10 des scripts à avoir sous Unity?

Message par Wadison » 27 Sep 2017 21:06

Bonjour,

Je suis nouveau sur le forum est sur Unity3d.
Je suis entrain de faire ma checklist de chose que je veux savoir faire avant de me lancer dans mon jeux.

J'ai un fait un code à exécuter dans l'éditeur pour faire de la duplication avec la possibilité d'en faire une chaine (HingeJoint).
Ce qui économise un paquet de temp!
exemple en vidéo
https://www.youtube.com/watch?v=qW3Ov2iYzmA
Etant plutôt codeur ca me gêne pas. Mais je suis plutôt étonné, de devoir faire du code pour des tâches "basiques++". Je dois être habitué au luxe sous BLender3D. Je sens que je vais coder un paquet d'outils comme celui-ci.

Mais j'ai peut-être loupé un truc?? Je perçois unity3D plus comme un moteur de jeu abouti et qu'il à encore tout a prouver en tant qu'éditeur de jeu ou suite 3D!?Ou alors que je suis un jeune padawan bien crédule. qui ne perçoit pas encore le potentiel d'unity sur ce point. En tout cas j'adore unity pour son système de "component", c'est ultra naturel pour concevoir/coder du jeux vidéo. C'est une forme de polymorphisme astucieuse est particulièrement adapté. Sans parler de l'intégration dans l'UI des scripts ultra naturel!

Pour revenir au sujet, vous connaissez des bundles de scripts dans le genre? Genre le top 10 des scripts à avoir sous Unity?
Serriez vous passé par un MonoBehaviour + trigger avec  [ContextMenu()] ou pas pour se genre de script?

Code : Tout sélectionner

public class ArrayModifier : MonoBehaviour {
   public int Count;
   public Vector3 offset;
   public Vector3 rotation;
   [ContextMenu(“Duplicate Array”)]
   void DuplicateArray()
   {
       var cursor = this;
       for(var i = 0; i < Count; i++) { 
           cursor = Object.Instantiate(cursor);
           Transform t = cursor.GetComponent<Transform>();
           t.position += offset;
           t.Rotate(rotation);
       }
   }
   [ContextMenu(“Duplicate Chained”)]
   void DuplicateChained()
   {
       Rigidbody rb = this.GetComponent<Rigidbody>();
       rb.isKinematic = true;
       var parent = this;
       for (var i = 0; i < Count; i++)
       {
           var child = Object.Instantiate(parent);
           Transform t = child.GetComponent<Transform>();
           t.position += offset;
           t.Rotate(rotation);
           Chain(parent, child);
           parent = child;
       }
   }
   private void Chain(MonoBehaviour parent, MonoBehaviour child)
   {
       var hj = child.GetComponent<HingeJoint>();
       if(hj==null) hj = child.gameObject.AddComponent<HingeJoint>();
       hj.connectedBody = parent.GetComponent<Rigidbody>();
       Rigidbody rb = child.GetComponent<Rigidbody>();
       rb.isKinematic = false;
   }
}

Répondre

Revenir vers « (C#) CSharp »