[Résolu]Deplacement axe Y 2D

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
Avatar de l’utilisateur
brandon45220
Messages : 50
Inscription : 03 Nov 2013 19:48
Localisation : Amilly
Contact :

[Résolu]Deplacement axe Y 2D

Message par brandon45220 » 26 Fév 2015 15:27

Bonjour à tous,

C'est encore moi et j'ai un autre problème... Je suis en train de créer un pong pour m'entrainer sur Unity 2D, et je suis bloqué pour faire déplacer mon joueur sur l'axe Y ( un pong quoi). J'ai testé plusieurs code mais aucun ne marche... Le dernier que j'ai essayé est celui-ci :

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class PlayerControls : MonoBehaviour {

	Vector3 move = new Vector3();

	void Update () {
		if (Input.GetKey ("up")) {
			move.y += 9f;
		}
		}
	}

Ou encore celui-ci :

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class PlayerControls : MonoBehaviour {

	public float speed = 10;

	void Update () {
		if (Input.GetKey ("up")) {
			transform.position = new Vector2(0f, speed);
		}
		}
	}
Si quelqu'un a une solution ou des conseils à me donner je suis preneur,

Merci d'avance,
Dernière édition par brandon45220 le 26 Fév 2015 16:45, édité 1 fois.
Administrateur du site http://intragames.olympe.in/ et de son projet Unity3D.

Avatar de l’utilisateur
minirop
Messages : 184
Inscription : 25 Juin 2014 12:58

Re: Deplacement axe Y 2D

Message par minirop » 26 Fév 2015 15:54

le premier code ne peut pas marcher car tu modifies une variable qui n'a aucun rapport.
le deuxième ne peut marcher non plus car tu fixes une valeur. à chaque fois transform.position sera égal à (0, 10). Il faut modifier la position actuelle, e.g.:

Code : Tout sélectionner

transform.position = transform.position + new Vector2(0f, speed);
ou

Code : Tout sélectionner

Vector3 pos = transform.position;
pos.y += speed;
transform.position = pos;
Développeur Nintendo & PS Vita RIP PSM. Vive moi. Vive Unity. Flappikachu Vita

Avatar de l’utilisateur
brandon45220
Messages : 50
Inscription : 03 Nov 2013 19:48
Localisation : Amilly
Contact :

Re: Deplacement axe Y 2D

Message par brandon45220 » 26 Fév 2015 16:20

Salut et merci d'avoir répondu aussi vite :)

J'ai maintenant compris pourquoi mes scripts ne marchaient pas, merci :p

Concernant les solutions que tu m'as donné, je les ai testés :

Solution 1 : Elle me renvoie une erreur pourtant j'y croyais vraiment à celle-ci :/ L'erreur : Assets/Scripts/PlayerControls.cs(10,56): error CS0121: The call is ambiguous between the following methods or properties: `UnityEngine.Vector2.operator +(UnityEngine.Vector2, UnityEngine.Vector2)' and `UnityEngine.Vector3.operator +(UnityEngine.Vector3, UnityEngine.Vector3)'

Et mon code pour la 1ère solution :

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class PlayerControls : MonoBehaviour {

	public float speed = 10;

	void Update () {
		if (Input.GetKey ("up")) {
			transform.position = transform.position + new Vector2(0f, speed);
		}
		}
	}

Edit : J'ai testé avec un Vector3 vu l'erreur et l'erreur a disparu mais quand j'appuis sur ma flèche mon joueur a une position Y de 50...

Solution 2 : Avec ce code-ci, il n'y a pas d'erreur mais mon joueur monte de 10 en 10 à chaque fois que j'appuie sur mon uparrow, je trouve ça assez bizarre..

Si tu as des conseils ou améliorations de ces codes, je prends avec plaisir :)

Merci,
Administrateur du site http://intragames.olympe.in/ et de son projet Unity3D.

Avatar de l’utilisateur
artemisart
Messages : 1893
Inscription : 21 Juin 2011 19:51
Localisation : Centre
Contact :

Re: Deplacement axe Y 2D

Message par artemisart » 26 Fév 2015 16:34

Ou un translate http://docs.unity3d.com/ScriptReference ... slate.html, il faut aussi que tu multiplie par Time.deltaTime pour ne pas être dépendant du framerate.

Avatar de l’utilisateur
brandon45220
Messages : 50
Inscription : 03 Nov 2013 19:48
Localisation : Amilly
Contact :

Re: Deplacement axe Y 2D

Message par brandon45220 » 26 Fév 2015 16:45

Merci beaucoup artemisart le Translate marche à merveille!
Administrateur du site http://intragames.olympe.in/ et de son projet Unity3D.

Répondre

Revenir vers « (C#) CSharp »