position camera

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
kanon22
Messages : 15
Inscription : 08 Août 2014 23:16

position camera

Message par kanon22 » 08 Août 2014 23:36

bonjour,
je suis debutant et là, je suis entrain de créer un petit jeu de platforme.
j'ai reussi a faire deplacer mon ennemi, dont voilà le script:

using UnityEngine;
using System.Collections;

public class moveTree : MonoBehaviour {

public Vector2 speed = new Vector2 (1, 0);
public Vector2 direction = new Vector2 (-1, 0);
private Vector2 mouvement;


void start(){
}

void Update () {
mouvement = new Vector2 (speed.x * direction.x, speed.y * direction.y);
}

void FixedUpdate(){
rigidbody2D.velocity = mouvement;
}



sauf que je voudrais qu'il commence a avancer uniquement quand il entre dans le champs de la camera ; camera qui suit le Player dont voilà le script:

public class suivreRenard : MonoBehaviour {

public Transform player;

void Start () {

}


void Update () {
transform.position = new Vector3 (player.position.x + 5 , player.position.y , -10);
}
}

donc aidez moi a recuperer la position X de la camera pour faire en sorte que l'ennemi ne commence a avancer que lorsqu’il entre dans le champ de la camera

Avatar de l’utilisateur
LudlowFx
Messages : 1367
Inscription : 19 Sep 2013 05:50

Re: position camera

Message par LudlowFx » 09 Août 2014 00:18

kanon22 a écrit :donc aidez moi a recuperer la position X de la camera pour faire en sorte que l'ennemi ne commence a avancer que lorsqu’il entre dans le champ de la camera
Alors premièrement, tu nous donnes un ordre là ou bien je rêve ? Tu pourrais au moins user des politesses de bases en fin de sujet !
Deuxièmement, écrire avec une police de 200px ne t'aideras pas à être pris en compte plus rapidement. Au contraire c'est très énervant autant que tu le sache.
Troisièmement, merci de baliser ton code. Si tu ne sais pas comment faire, merci de lire La Nétiquette des Forums !

Edit : Déplacement dans la section relative aux questions sur la programmation !

Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

kanon22
Messages : 15
Inscription : 08 Août 2014 23:16

Re: position camera

Message par kanon22 » 09 Août 2014 00:36

daccor, je vais faire un effort :)
Dernière édition par kanon22 le 09 Août 2014 01:43, édité 1 fois.

Avatar de l’utilisateur
yoyoyaya
Messages : 1656
Inscription : 30 Mai 2011 13:14
Localisation : PAAAAARTOUUUU
Contact :

Re: position camera

Message par yoyoyaya » 09 Août 2014 01:30

kanon22 a écrit :merci Ludlo ché po koi
fx mon cher, fx. Ce n'est pourtant pas la mort, pas besoin d'un "ché po koi".
kanon22 a écrit :je crois que je vais plutot arreter l'informatique
En voilà une idée brillante. Te voilà encouragé de le faire. Avec tout mon soutien.
Le plus amusant, c'est que tu as trouvé le moyen de jouer avec les couleurs, mais tu n'as pas été capable d'utiliser les balises code.

Allez, vue que je suis un zentil poney tout doux, ze vais t'aider. Pour récupérer la position de la camera, rien de plus simple.
Dans ton script, tu déclare ta camera dans une variable Transform que tu assigne dans l'inspector

Code : Tout sélectionner

public Transform maCamera;
et dans ton update (ou où tu veux), tu récupère la position x de la caméra comme suit

Code : Tout sélectionner

float positionX = maCamera.position.x;
Tiens, des liens te menant à des scripts tout prêts ici et là.
ImageImage

kanon22
Messages : 15
Inscription : 08 Août 2014 23:16

Re: position camera

Message par kanon22 » 09 Août 2014 02:51

merci yoyoyaya mais j'ai pas reussi a faire se que je veux :(
soit faire une condition qui compare la position x de la camera a la position de lennemi(Pitbull)

Code : Tout sélectionner

public class moveTree : MonoBehaviour {

	public Vector2 speed = new Vector2 (1, 0);
	public Vector2 direction = new Vector2 (-1, 0);
	private Vector2 mouvement;
	public Transform maCamera;
	public Transform Pitbull;
 

	void start(){

		float positonX = maCamera.position.x;
		float positonX1 = Pitbull.position.x;
		}

	void Update () {
	
		if (positionX = positionX1) {
			mouvement = new Vector2 (speed.x * direction.x, speed.y * direction.y);
				}
	}
		
	void FixedUpdate(){

		rigidbody2D.velocity = mouvement;
		}
en tous cas ça ne fonctionne pas :oops:

Elessar Elanesse
Messages : 100
Inscription : 13 Nov 2012 14:44

Re: position camera

Message par Elessar Elanesse » 09 Août 2014 11:02

Alors déjà dans un If(), on met "==" pour comparer des valeurs et voir si elles sont égales...
Si ton X Cam est égal au X Pitbull, le Pitbull avancera, sauf que toi tu veux que ton Pitbull avance quand il entre dans le champ de la Caméra.

Si j'étais toi j'utiliserai le fonction :
OnRenderer(), qui s'active quand l'objet est dans le champ de la Caméra. =)
Développeur C# / Unity3D | Game Designer de Formation
Développeur Java / Php - En cours de Formation

Projets en Cours :
- Exode (Univers META-Pere)

• If you know the enemies and know yourself, you don't need to fear the result of a hundred battles •

Avatar de l’utilisateur
LudlowFx
Messages : 1367
Inscription : 19 Sep 2013 05:50

Re: position camera

Message par LudlowFx » 09 Août 2014 11:24

Elessar Elanesse a écrit :Alors déjà dans un If(), on met "==" pour comparer des valeurs et voir si elles sont égales...
En effet donc peut-être qu'une lecture sur les opérateurs serait intéressante en cours de route. http://msdn.microsoft.com/fr-fr/library/ms173145.aspx

C'est en C# mais bon par exemple, == ou != d'un côté vaux de même de l'autre en UnityScript.
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

kanon22
Messages : 15
Inscription : 08 Août 2014 23:16

Re: position camera

Message par kanon22 » 09 Août 2014 15:25

j'ai enfin trouvééééééééééééééééééééééééééééééééééééééééé :)
et si ça vous interesse voilà la solution

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class moveTree : MonoBehaviour {

	public Vector2 speed = new Vector2 (1, 0);
	public Vector2 direction = new Vector2 (-1, 0);
	private Vector2 mouvement;


	void start(){
		}

	void Update () {
		Vector2 positionEcran = Camera.main.WorldToScreenPoint(transform.position);
		if (positionEcran.x < Screen.width) {
			mouvement = new Vector2 (speed.x * direction.x, speed.y * direction.y);
		}
		}
	
		
	void FixedUpdate(){
	rigidbody2D.velocity = mouvement;
	}
	}

donc merci de votre aide
vous etes geniaux ;)

Répondre

Revenir vers « Scripting »