Je sais je plaisantais
^^ ok ça va mais on s'irrite facilement quand on a l'habitude de passer du temps à aider les gens et de pas être remercié, alors là ça faisait pas trop plaisir.
Mais t'inquiète
(suffit de dire merci et je suis gentil )
Est ce que qu'elle qu'un pourrais m'aider pour un script car ça fais 2h que je suis dessus ça met Parser error et un espace de nom ne peux pas contenir directement des membre tel que des champs ou des méthode using UnityEngine;
using System.Collections;
public class vol : MonoBehaviour
{
public Vector2 Saut = new Vector2(0,100);
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
if (Input.GetKeyDown (KeyCode.Space))
{
GetComponent<Rigidbody2D> ().AddForce (Saut);
}
Vector2 positionScreen = Camera.main.WorldToScreenPoint (transform.position);
if (positionScreen.y > Screen.height || positionScreen.y < 0)
playerdied();
}
void OnCollisionEnter2D (Collision2D other);
}
playerdied ();
)
void playerdied (){
Application.loadLevel (Application.LoadedLevel);
}
)
Je pense que tu as mal compris les blocks.
Quand tu écris une fonction, après la déclaration tu met une accolade { pour ouvrir le block. C'est ici que tu vas écrire tes actions. Quand ta fonction est terminée tu met une accolade fermée }.
Les ; ne sont que pour la fin des lignes d'actions.
Ainsi ton code corrigé donne :
using UnityEngine;
using System.Collections;
public class vol : MonoBehaviour
{
public Vector2 Saut = new Vector2(0,100);
// Update is called once per frame
void Update ()
{
if (Input.GetKeyDown (KeyCode.Space))
{
GetComponent<Rigidbody2D> ().AddForce (Saut);
}
Vector2 positionScreen = Camera.main.WorldToScreenPoint (transform.position);
if (positionScreen.y > Screen.height || positionScreen.y < 0)
playerdied();
}
void OnCollisionEnter2D (Collision2D other)
{
playerdied ();
}
void playerdied ()
{
Application.loadLevel (Application.LoadedLevel);
}
}
Bonjour MiiXYTUB,
Votre erreur provient certainement de
Application.loadLevel (Application.LoadedLevel);
Vous devez utiliser en paramètre soit un int du numéro de level à charger, soit sont nom sous forme de string.
https://docs.unity3d.com/ScriptReference/Application.LoadLevel.html
A noter que l'utilisation de cet API est obsolète dans la version actuelle de Unity.
Sur le principe vous devriez utiliser SceneManager.LoadScene(...) .
https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadScene.html
Bonne continuation.
Merci
Salut,
J'ai un problème avec unity, j'ai fait un personnage sur Autodesk Character Generator, j'ai téléchargé un pack d'animation, j'ai passé le rig de mon perso en humanoïde pour les utilisés, mais j'aimerais créer une nouvelle animation mais je n'y arrive pas, quand je bouge une articulation et que j'avance dans la timeline, l'articulation revient au point de départ, et il y a ce message sur mon perso https://gyazo.com/372f16d013f4792c783aa839e080b915
Bonjour, j'ai pas mal de problèmes dans Unity mais on va essayer de régler les plus gros.
Première je ne sais pas pourquoi, je ne peux plus ajouter aucun objet a ma scène, quand je le prend de la hierarchy, et que j'essai de le drag and drop dans la scène, ca met un curseur interdis.
Ensuite, j'ai remarquer avec un debug.Log et une variable qui s'incrémente quand j'appuie sur ma touche espace, que quand j'appuie la première fois cela incrémente bien de 1, mais au second appel cela n’incrémente pas et incrémente de nouveau seulement a partir du 3eme appuie.
Sauriez vous d'ou vienne ces 2 problèmes et comment les réglés ?
Merci.
Sauriez vous d'ou vienne ces 2 problèmes et comment les réglés ?
Peut-être nous donner plus d'informations ? un screen du gameobject ? Tu as une erreur avant d'essayer de le mettre dans ta scene ?
Le morceau de code où tu incrémentes les touches au clavier ? Tu ne désactives pas le gameobject qui gère la touche par hasard ?
Le 14 décembre 2016 à 10:29:00 TheRealMarco a écrit :
Sauriez vous d'ou vienne ces 2 problèmes et comment les réglés ?
Peut-être nous donner plus d'informations ? un screen du gameobject ? Tu as une erreur avant d'essayer de le mettre dans ta scene ?
Le morceau de code où tu incrémentes les touches au clavier ? Tu ne désactives pas le gameobject qui gère la touche par hasard ?
J'ai finalement réussi a régler le problème, ca venais de mon circleOverlapp pour le ground check qui avais un radius trop grand.
Merci quand même
Bonjour, j'aimerais savoir quelle échelle utiliser pour modeler dans c4d pour que ce soit optimal pour l'export vers Unity.
Et quelle échelle dans Photoshop pour faire les tracés pour utiliser le rendu comme blueprint sur C4D.
pour le moment les chambres sont soit trop grandes soit trop petite, j'ai du mal avec les plafonds que j'ai pas d'échelle pour mettre en forme les plans que j'ai tracé sur photoshop.
ETvu que je travaille sur un labyrinthe/horreurGAME, je vais avoir des centaines de mur et des centaines de décorations, ça peut jouer au niveau des performances ?
J'ai dl le soft hier (Unity).
Bonjour,
Le 16 décembre 2016 à 08:49:32
badfenec a écrit :
Bonjour, j'aimerais savoir quelle échelle utiliser pour modeler dans c4d pour que ce soit optimal pour l'export vers Unity.
Dans Unity on considère que l'unité représente 1 mètre.
Peut importe l'echelle et ou le type d'unité que vous utilisez dans C4D, c'est lors de l'import de vos modèles que vous définirez et adapterez le bon rapport pour être proche d'une valeur réelle.
Pour être au plus prêt et connaitre le bon rapport, il vous suffit dans un premier temps d'importer votre modèle avec un rapport de 1 dans une scène qui comporte par exemple un cube natif (de 1 x 1 x 1, cela vous servira de règle).
Puis en modifiant le scale de votre modèle 3D, vous vous calez visuellement sur la taille que celui ci devrait avoir par rapport au cube de 1 mètre. La valeur ainsi obtenue sera alors le rapport a appliquer lors de votre import.
ETvu que je travaille sur un labyrinthe/horreurGAME, je vais avoir des centaines de mur et des centaines de décorations, ça peut jouer au niveau des performances ?
OUI...
Si vous utilisez le moteur physique dans votre jeu, il est très important pour les modèles 3D qui l'utilise d'être dans une échelle réelle (1 unité = 1 mètre).
Modifier l'echelle d'un modèle (scale) dans une scène est une très mauvaise option.
C'est donc à l'étape de l'import de votre modèle que vous devrez agir.
Bonne continuation.
Bonjour,
Avant de commencer, je précise que je code en JS...
J ai crée un script GUI dans lequel l on peut switcher entre plusieurs cameras, ça ressemble un peu près à ça :
Lacamera.enabled = true ;
Lacamera2.enabled = false ;
Lacamera et Lacamera2 sont des variables de cameras
Le script donnant le GUI est dans chaque camera... avec des boutons permettant de switcher entre plusieurs caméras , mais les variables renvoyant à des caméras differentes, mon script est le meme sur toutes les cameras mais différent suivant les variables...
Le problème est donc que j'aimerais faire en sorte qu'au lieu d avoir une centaine de GUI les unes sur les autres dans l ecran de jeu, faire en sorte que mon GUI d une camera se desactive lorsque l on passe d une camera à une autre et que l autre GUI s active et ainsi de suite...
Je me suis donc dit qu'une variable mais pour les scripts pourrait résoudre mon problème et faire comme pour les caméras :
lescript.enabled = true
lescript2.enabled = false
Le seul problème est que je ne sais pas comment faire une variable pour un script non défini de tel sorte que je puisse depuis l editeur, glisser le script d une camera dans la variable...
Je peux faire :
var lescript : scriptcamera ;
Mais cette variable ne permet pas de differencier un script et un autre script identique mais sur une autre camera, si ?
Merci
Ps: je n ai pas mon ordinateur sur moi, je m excuse donc car je ne peux vous envoyer mon script en entier...
Je suis aussi je precise une vraie quiche pour ce qui est de faire des recherches sur le doc... donc je m excuse encore
Avant de commencer, je précise que je code en JS...
Passe au C# conseil d'ami
Le seul problème est que je ne sais pas comment faire une variable pour un script non défini de tel sorte que je puisse depuis l editeur, glisser le script d une camera dans la variable...
Je peux faire :
var lescript : scriptcamera ;
C'est ça, tu n'as plus qu'à glisser ta caméra dans ta variable et il va en extirper le script en question attaché.
Mais cette variable ne permet pas de differencier un script et un autre script identique mais sur une autre camera, si ?
Si Il suffit d'utiliser script.gameObject pour connaitre l'objet auquel ton script est attaché. Donc si les deux scritps ont des variables identiques mais sont attaché à des objets différents, tu peux les différencier.
Vous savez si je peut dessiner des cercles dans le monde (donc pas sur l'UI) autrement qu'avant des courtes successions de line renderer ?
Bonjour
je suis tomber sur un scripte qui permet de crée des coffres:
(https://mega.nz/#!KctAGQCR!YO8G7vqjeVRcoanfLqTvTsL20ce-ks5yDJhkfLj4Phk) (celui ci)
je l'ai installer en regardant un toto sur internet, tout fonctionne ! mais quand je m'approche du coffre et que je tape "e" le jeu crash avec cette erreur:
NullReferenceException: Object reference not set to an instance of an object
Chest.Update () (at Assets/Chest.js:33)
Voici le scripte <spoil>#pragma strict
private var playerstats : PlayerStats;
private var showGUI : boolean = false;
var ChestName : String;
var Amount : int;
function Start () {
playerstats = GameObject.Find("Health").GetComponent(PlayerStats);
}
function OnTriggerEnter(hit : Collider) {
if(hit.gameObject.tag == "Player"){
showGUI = true;
}
}
function OnTriggerExit(hit : Collider){
if(hit.gameObject.tag == "Player"){
showGUI = false;
}
}
function Update () {
if(showGUI == true){
if(Input.GetKeyDown("e")){
Debug.Log ("Chest open");
playerstats.money += Amount;
GameObject.Find(ChestName).GetComponent(Chest).enabled = false;
GetComponent.<Animation>().Play("open");
GetComponent.<Animation>()["open"].speed = 1;
}
}
}
function OnGUI()
{
if(showGUI == true){
GUI.BeginGroup(new Rect(Screen.width/2-50,Screen.height/2-12.5,300,300));
GUI.Box(Rect(0,0,100,25),"Press E to open");
GUI.EndGroup ();
merci de votre future aide
Ps: je suis nul en script alors expliquez-moi comme si vous expliquer à une gamine de 8 ans
NullReferenceException: Object reference not set to an instance of an object
Chest.Update () (at Assets/Chest.js:33)
Signifie qu'à la ligne 33 du script Chest.js tu as utilisé une fonction d'un objet que tu n'as jamais assigné.
Une assignation c'est ça :x = 5;
playerstats.money += Amount;
GameObject.Find(ChestName).GetComponent(Chest).enabled = false;
Ça doit être une de ces deux lignes.
Soit tu n'as pas assigné dans l'éditeur playerstats. L'éditeur c'est dans Unity, où tu peux faire des drag and drop et mettre des valeurs aux scripts.
Soit ChestName n'est pas assigné, soit aucun objet ne s'appelle exactement de la même manière que la valeur que tu lui a affecté.
Le 18 décembre 2016 à 22:05:09 -Adridu84- a écrit :
Avant de commencer, je précise que je code en JS...
Passe au C# conseil d'ami
Le seul problème est que je ne sais pas comment faire une variable pour un script non défini de tel sorte que je puisse depuis l editeur, glisser le script d une camera dans la variable...
Je peux faire :
var lescript : scriptcamera ;C'est ça, tu n'as plus qu'à glisser ta caméra dans ta variable et il va en extirper le script en question attaché.
Mais cette variable ne permet pas de differencier un script et un autre script identique mais sur une autre camera, si ?
Si Il suffit d'utiliser script.gameObject pour connaitre l'objet auquel ton script est attaché. Donc si les deux scritps ont des variables identiques mais sont attaché à des objets différents, tu peux les différencier.
Merci, en revanche le script ne marche pas...
Avec :
var unscript : scriptcamera ;
Puis :
unscript.enabled = true
J ai dû faire :
var unscript : scriptcamera ;
function Awake () {
unscript = GetComponent(scriptcamera) ;
}
Avant de pouvoir placer
unscript.enabled = true
Mais sinon merci
En revanche, j ai un autre problème encore rapport avec les caméras, j'ai donc mis une variable pour chaques caméras
Donc :var camera1 : Camera ;
Puiscamera1.enabled = true
Mais j'aimerais faire un script qui fait le meme effet mais à la place de faire effet sur une camera à glisser dans la variable depuis l éditeur, j aimerais qu elle face effet sur la caméra qui est actuellement activé, la seule activée...
J'ai donc supprimé ma variable et j'ai mis :Camera.current.enabled = false
Mais le code ne marche pas, quelqu un peut il m aider s'il vous plait ?
Merci
Camera[] cameras = FindObjectsOfType(typeof(Camera)) as Camera[];
if (cameras[0].enabled == true)
cameras[0].enabled = false; cameras[1].enabled = true;
else
cameras[1].enabled = false; cameras[0].enabled = true;
Pourquoi pas ça ?
Le 19 décembre 2016 à 19:01:26 TheRealMarco a écrit :
NullReferenceException: Object reference not set to an instance of an object Chest.Update () (at Assets/Chest.js:33)
Signifie qu'à la ligne 33 du script Chest.js tu as utilisé une fonction d'un objet que tu n'as jamais assigné.
Une assignation c'est ça :
x = 5;
playerstats.money += Amount; GameObject.Find(ChestName).GetComponent(Chest).enabled = false;
Ça doit être une de ces deux lignes.
Soit tu n'as pas assigné dans l'éditeur playerstats. L'éditeur c'est dans Unity, où tu peux faire des drag and drop et mettre des valeurs aux scripts.Soit ChestName n'est pas assigné, soit aucun objet ne s'appelle exactement de la même manière que la valeur que tu lui a affecté.
L'erreur est bien la ligne
GameObject.find(ChestName).getComponent(chest) enabled = fals
Alors comment affectés chestname ???
Dans l'éditeur j'ai écrit à chest name: Cube
voilà une photo