Oua... Putain, c'est la grande galère pour faire un système de dialogue....
Oua... Putain, c'est la grande galère pour faire un système de dialogue....
Pour les artefacts dans l'editor je sais pas trop, peut-être lié à un bug Windows 10, moi je suis encore à 8 mais il me semble avoir entendu d'autres gens se plaindre de problèmes sous le 10 (peut-être pas de ce style ceci dit).
Par rapport au souci de pixel, tu as essayé de cocher "Pixel perfect" sur ton canvas ?
En tout cas tu trouveras peut-être des infos utiles ici : http://blogs.unity3d.com/2015/06/19/pixel-perfect-2d/
Hop là petite question, puisque je vais attaquer mon gros projet de M1 qu'on va programmer sous Unity.
En gros c'est un jeu de tennis de table en 3D, et je me demandais si vous auriez des pistes/articles sur les bonnes manières d'utiliser (ou non) la physique d'Unity ?
Merci
Edit : je me retrouve tout seul en programmation sur le projet ... Si jamais vous avez des idées avant que je me jette, je prends
J'ai trouvé de très bon tutos Unity ici (scripts C#): http://catlikecoding.com/unity/tutorials/
Bien détaillés avec copie d'écran quand il faut.
Oui j'ai trouvé ça en cherchant justement comment faire une carte hexagonale
Il vient d'ailleurs de rajouter une nouvelle partie de son tuto sur les hexagones avec des hauteurs différentes suivant les cases
En fait, c'est dommage, il n'y a pas de topic général :
Toons premium va sortir son soft en libre accès, avec notamment toutes les features qu'a créé le studio Ghibli. J'ai un peu regardé ce que faisait toonz, et je me demande si ça permet pas de simplifier amplement la vie aux graphistes (2D) pour les animations.
http://www.toonzpremium.com/
Sorti le 26 mars.
Un logiciel avec des features de Ghibli? C'est étrange car ce studio fait tout à l'ancienne, à l'encre avec cellophane etc (et qui d'ailleurs n'arrive plus à en vivre...) donc pas de logiciel, sauf si je ne suis plus à jour !
Edit: ok, j'ai rien dit
Commenting on this exciting announcement, Mr. Atsushi Okui, Executive Imaging Director at Studio Ghibli said “During the production of ‘Princess Mononoke’ in 1995, we needed a software enabling us to create a certain section of the animation digitally. We checked for what was available at that time and chose ‘Toonz’. Our requirement was that in order to continue producing theatre-quality animation without additional stress, the software must have the ability to combine the hand-drawn animation with the digitally painted ones seamlessly. From then onwards we continued to use the software while going through major updates to make it easier for us to use. We are happy to hear that this open source version contains the Ghibli Edition. We hope that many people inside and outside of the animation industry will utilize this software for their work. We would like to extend our gratitude to the staff of Digital Video.”
Dernière modification par Poussin Joyeux ; 24/03/2016 à 09h59.
Dites, est-ce que quelqu'un a réussi à trouver un workaround pour faire des prefabs imbriqués ?
Impossible de me faire un workflow optimisé à cause du manque de ce genre de fonctionnalités. Je suis obligé de copier-coller des changements sur plusieurs prefabs alors que je devrais pas avoir à le faire
C'est l'une des features les plus réclamées de Unity. Il n'y a pas de solution parfaite, mais parmi les moyens de contourner ça, on trouve :
- Des plugins type PrefabEvolution (pas sans inconvénient non plus, la question est forcément un peu compliquée, sinon Unity l'aurait fait depuis longtemps)
- Adapter ton workflow à cette contrainte. Instancier les sous-prefabs en runtime uniquement (et ils ne sont donc présents dans le "super" prefab qu'en tant que référence, pas instanciés), ne pas créer X modèles de prefab différents pour des entités similaires mais les initialiser à l'instanciation pour en faire le prefab spécialisé voulu...
J'ai utilisé les deux méthodes, chacune a ses inconvénients et ses limites. Après il faut aussi garder à l'esprit que le prefab, c'est quand même une feature sympa de Unity, qui évite de recréer un objet de 0 via du code ; là où on rencontre les limites des prefabs, il est parfois nécessaire de revenir en partie aux méthodes utilisées dans un moteur où le concept même de prefab n'existe pas.
C'est ce que je m'étais dis aussi; peut-être que je sur-utilisais les Prefab. Mais au final, j'ai l'impression que le Prefab, c'est la manière graphique de faire une fonction qui crée un GameObject, y ajoute les Component appropriés et les initialise tout-comme-il-faut.
Mais si je fais vraiment des fonctions "prefab", j'aurais pas les avantages que m'offrent Unity en utilisant les Prefab (genre la prévisualisation des SpriteRenderer).
Je pense que je vais me cantonner à mon script qui Instantiate le Prefab enfant pour l'instant, même si j'y perds la prévisualisation des sous-Prefab.
C'est ce que je fais personnellement, en tout cas, et il est probable qu'on ne conserve pas PrefabEvolution pour le prochain projet de ma boîte, ça rajoute des temps d'importation un peu excessifs sur un gros projet. Ceci dit qui sait, peut-être que Unity s'y penchera un jour, ils ont bien ajouté les multi-scènes récemment, ils sont sur la bonne voie !
Preview des améliorations prévues pour la 2D : http://blogs.unity3d.com/2016/06/13/...ental-preview/
Et on peut déjà tester !
Battletag : AduNaph3L#2694 || Steam : Wensicia || PSN : AduNaph3L
Bonjour à tous
Je viens de dl Unity avec la ferme intention d'en faire quelque-chose, j'ai décidé de me lancer dans la création de JV. Cependant, je n'ai aucune idée de comment créer un JV, de comment apprendre, de comment faire quoi que ce soit en ce sens. Ce qui fait de moi le newbie originel..
En ce sens, j'aimerai beaucoup avoir des pistes pour mieux appréhender le milieu et rejoindre votre communauté et pour apprendre les ficelles de la création. Avez-vous des liens ou même un canal vocal pour en parler et m'introduire à tout ceci ?
Déjà, je te conseille de commencer par les tutos disponibles sur le site de Unity. Ils sont de très bonne qualité et vont t'apprendre les bases:
https://unity3d.com/fr/learn/tutorials
Si tu t'orientes vers de la 2D, je t'invite à jeter un oeil aux vidéos de CasanisPlay. Elles sont super bien fichues. Sinon, pour quelques conseils "de base", la discussion que j'avais ouverte... J'y avais obtenu des réponses très intéressantes pour débuter.
www.infotographiste.fr - Instagram : florent.infotographiste - Si ça doit merder, ça merdera…- PC Ryzen 3700X+32GB+XFX 5700XT ThicIII Ultra - Panasonic G9 + Leica 8-18mm + Olympus 60mm macro ou Mamiya C220 (Gx7 + Panasonic 14mm en secours)
Tu peux aussi regarder cette longue liste de tutoriels en réponse à la question How can I start learning Unity fast? La liste date de 2010, mais il y a une update de 2016, alors la plupart des liens peuvent être encore d'actualité.
J'avais aussi regardé les tutos des TornadoTwins il y a 2 ans, c'était déjà un peu dépassé pour ce qui est des fonctionnalités dans Unity (ils ont commencé la série de tutos en 2009), mais je trouve que les raisonnements restent valables : Make a Videogame from Scratch
Vidéos Youtube / Gallerie imgBB
Listes de mods : Starfield / XCOM2 / No Man's Sky / RimWorld / Mount&Blade
Merci à toi, je me suis gardé tout ça en favoris.
www.infotographiste.fr - Instagram : florent.infotographiste - Si ça doit merder, ça merdera…- PC Ryzen 3700X+32GB+XFX 5700XT ThicIII Ultra - Panasonic G9 + Leica 8-18mm + Olympus 60mm macro ou Mamiya C220 (Gx7 + Panasonic 14mm en secours)
Salut !
Je me lance enfin dans Unity, j'ai trouvé un tuto récent et bien expliqué en 40 épisodes pour se faire un Zelda (2D) assez complet (manque la gestion de l'inventaire et des sauvegardes en gros).
Étant moi-même développeur (étudiant) et bossant principalement en ASP.net qui contient du C#, ça peut être intéressant.
Je viendrai quémander votre aide si j'ai de gros problèmes.
A terme j'aimerai réaliser un Zelda-like mobile avec des zones à la WoW (mobs dans diverses zones par niveaux) et pas mal de quêtes.
Le seul truc qui va me limiter est je pense (hormis les problèmes techniques) le manque de ressources graphiques, même si les packs de Kenney sont très fournis et facilement modifiables.
Plop ! Bon courage Et pourrais-tu partager ce tuto stp ?
Battletag : AduNaph3L#2694 || Steam : Wensicia || PSN : AduNaph3L
Ça commence ici : https://youtu.be/Pk3GCgaNVTY
Merci ! (en plus j'étais déjà abonné à la chaine )
Battletag : AduNaph3L#2694 || Steam : Wensicia || PSN : AduNaph3L
Coicoin tt le monde
Je suis en train de dev un chti soft de chat avec unity et j'ai un pb lors de la deco.
C'est avec l'aide d'un tuto que j'en suis arrivé là.
Mais là je bloque.
quelqu'un pourrait m'aider ?
coté client
Code:using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using System.Net.Sockets; using System.IO; using System; public class Client : MonoBehaviour { private bool socketReady; private TcpClient socket; private NetworkStream stream; private StreamWriter writer; private StreamReader reader; private NetworkConnection network; public string clientName; public NetworkPlayer networkClient; public GameObject chatContainer; public GameObject messagePrefab; public void ConnectToServer() { // Si deja connecté, ignorez cette methode if (socketReady) return; // IP et port par défaut string host = "127.0.0.1"; int port = 9865; //string login = ""; // Remplace les valeurs par défaut par celle saisies dans les champs string h; // HostInput int p; // PortInput string l; // Login h = GameObject.Find("HostInput").GetComponent<InputField>().text; if (h != "") host = h; l = GameObject.Find("Login").GetComponent<InputField>().text; if (l != "") clientName = l; //networkClient = l; // Debug.Log("Login = " + login + "ou L = "+l); int.TryParse(GameObject.Find("PortInput").GetComponent<InputField>().text, out p); if (port != 0) //port = p; // On créé la connexion try { socket = new TcpClient(host, port); stream = socket.GetStream(); writer = new StreamWriter(stream); reader = new StreamReader(stream); socketReady = true; } catch(Exception e) { Debug.Log("CLIENT.CS - Fonction ConnectToServer Socket Error : " + e.Message + " IP = " + host + " et Port = " + port ); } } /* public void DisconnectFromServer() { try { // GameObject.Find("Deconnexion").GetComponent<Button>().OnClick.RemoveAllListeners(); // GameObject.Find("Deconnexion").GetComponent<Button>().OnClick.AddListener(MonoBehaviour.singleton.StopHost); // network = new NetworkConnection(); // network.Disconnect(); Network.CloseConnection(Network.connections[1], true); } catch(Exception e) { Debug.Log("error message : " + e.Message); } } */ private void Update () { if (socketReady) { if(stream.DataAvailable) { string data = reader.ReadLine(); if(data != null) { OnIncomingData(data); } } } } private void OnIncomingData(string data) { if(data == "%NAME") { Send("&NAME|" + clientName); return; } GameObject go = Instantiate(messagePrefab, chatContainer.transform) as GameObject; go.GetComponentInChildren<Text>().text = data; //Debug.Log("CLIENT.CS - Server : " + data); } private void Send(string data) { if (!socketReady) return; writer.WriteLine(data); writer.Flush(); } public void OnSendButton() { string message = GameObject.Find("EnvoiTexte").GetComponent<InputField>().text; Send(message); } public void CloseSocket() { if (!socketReady) return; // Network.CloseConnection(networkClient, true); stream.Close(); writer.Close(); reader.Close(); socket.Close(); socketReady = false; } private void OnApplicationQuit() { CloseSocket(); } private void OnDisable() { CloseSocket(); } }
Cote serveur
Spoiler Alert!
Alors j'ai jamais touché au côté réseau de la force, donc je peux pas t'aider, mais de toute façon ça pourrait éventuellement être bien que tu dises ce sur quoi tu bloques au juste, là tu as juste mis plein de code, je vois pas comment on peut deviner en quoi on peut t'aider !
Milles excuses, je pensais avoir expliquer plus en détails
voici l'erreur quand je clique sur 'deconnexion"
ObjectDisposedException: The object was used after being disposed.
System.Net.Sockets.TcpClient.CheckDisposed ()
System.Net.Sockets.TcpClient.GetStream ()
Server.Update () (at Assets/Script/Server/Server.cs:62)
ALors evidemment, j'ai cherché de mon cote mais je ne trouve pas de solutions.
J'ai bien compris que c'est à la ligne 62 que j'ai un pb et que c'est lié à la récupération d'un flux d'info. Mais il me semble pourtant que je ferme bien le flux quand je me deco, alors bon je sais pas trop quoi faire.
Somebody help ?
Alors effectivement il a l'air d'y avoir plusieurs soucis dans ton Update du client :
- Pourquoi ce "return;" quand tu fermes un client ? Tu ne veux plus regarder les autres dès lors que tu en fermes un seul ?
- Ta gestion de disconnectedList a l'air louche, déjà ça ne passe pas dans ce code quand tu y ajoutes un élément (à cause de ce "return;" mentionné ci-dessus), ce qui fait qu'à l'Update suivante ton client déconnecté est encore dans la liste de clients (alors que tu l'as Closed, c'est probablement ça qui génère l'exception que tu mentionnes : tu le closes puis à l'update suivante tu essaies encore d'appeler des fonctions dessus comme GetStream). De plus dans cette partie du code où tu vides disconnectedList, tu fais des Remove sur ta liste de clients alors que tu es à l'intérieur d'un foreach qui parcourt clients, et ça a priori c'est interdit.
En gros, il te faudrait quelque chose plutôt dans ce style :
(Non testé, donc je garantis rien !)Code:private void Update() { if (!serverStarted) return; for(int i = 0; i < clients.Count; i++) { ServerClient c = clients[i]; // Client tjrs connecté ? if(!IsConnected(c.tcp)) { c.tcp.Close(); disconnectedList.Add(c); clients.RemoveAt(i); i--; } // Verif si message envoyé par client else { NetworkStream s = c.tcp.GetStream(); if (s.DataAvailable) { StreamReader reader = new StreamReader(s, true); string data = reader.ReadLine(); if(data != null) OnIncomingData(c, data); } } } // Affiche tableau des users connectés // Debug.Log("SERVEUR tableau users : " + clients.Count +"\t - Name = " + c.clientName + "\t - DECO = " + disconnectedList.Count); // Message 'User' s'est déconnecté for (int i = 0; i < disconnectedList.Count - 1; i++) { Broadcast(disconnectedList[i].clientName + " s'est déconnecté !", clients); } disconnectedList.Clear(); // Affiche tableau des users connectés Debug.Log("SERVEUR tableau users : " + clients.Count + "\t - Name = " + c.clientName + "\t - DECO = " + disconnectedList.Count); }
Coincoin tt le monde,
J'ai un probleme, qui est plus de la methodo de dev, qu'un vrai pb unity mais bon
voila le probleme
J'ai 2 listes
avecCode:public List<ServerClient> clients; private List<ServerClient> disconnectedList;
Ce que je veux c'estCode:public class ServerClient { public TcpClient tcp; public string clientName; public ServerClient(TcpClient clientSocket) { clientName = "Invité"; tcp = clientSocket; } }
Or quand je fais ça, j'ai le messageCode:// Si liste clients contient cl.clientName alors on instancie usernamePrefab correspondant if (clients.Contains(cl.clientName)) { GameObject go = (GameObject)Instantiate(usernamePrefab, connectedUserContainer.transform); } // Si liste disconnectedList contient cl.clientName alors on destroy usernamePrefab correspondant}
Et là, je sais pas quoi faire.Code:Argument `#1' cannot convert `string' expression to type `ServerClient'
J'essaie bien avec la methode Convert.ToString, mais ça passe pas. Je me dis aussi c'est peut etre dans la class ServerClient mais je sais pas quoi ajouter
Quelqu'un aurait une idée ?
Cette ligne est étrange:
if (clients.Contains(cl.clientName))
Tu fais un test sur ta liste de ServerClient, si elle contient... un nom de client ? (qui est un type string je suppose).
Je pense que tu souhaites faire ca plutôt:
if (clients.Contains(cl))