bonjour,
Je ne comprends pas:
J'ai crée un scriptC# de translation et un autre C# de spawn en mouvement translaté de telle sorte qu'appliqués judicieusement, un objet se translate selon ce vecteur (1,0,0) et à chaque appui d'une touche,cet objet "spawn" depuis sa position sur sa trajectoire un autre objet translaté dont le vecteur de translation est (1,0,1)
J'ai bien pris les précautions de créer ces translations avec un choix judicieux de coordonnées locales ou mondiales(Space.Self ou Space.World)
Quand la camera est juste derrière l'objet spawnant en le suivant de près,on voit que le spawn à un vecteur directeur de (-1,0,1)
Il y a sûrement un problème de vue à régler chez Unity que je ne comprends pas dont j'aimerais bien connaître l'explication
merci de votre aide
[DB]ne voir qu' à l'envers ?
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
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
- boubouk50
- ModoGenereux
- Messages : 6222
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB]ne voir qu' à l'envers ?
Rien n'est magique, tout est programme...
On ne peut pas t'aider si on a pas le code entier. Tu pars du principe que ton code est juste et que Unity fait le taff à l'envers. Si on part du principe que ton code n'est pas bon, alors il nous faut le code pour le corriger.
On ne peut pas t'aider si on a pas le code entier. Tu pars du principe que ton code est juste et que Unity fait le taff à l'envers. Si on part du principe que ton code n'est pas bon, alors il nous faut le code pour le corriger.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
- Kaloverian
- Messages : 345
- Inscription : 10 Août 2016 03:03
Re: [DB]ne voir qu' à l'envers ?
Voici mes 2 scripts en C#
le 1er translate l'objet auquel est appliqué ce script
Le second script appliqué sur ce même objet spawn un objet translaté en (1,0,1) à la position du 1er objet translaté en (1,0,1) par le 1er script
Dans le 2ème script,j'ai essayé aussi avec Space.World dans la translation.
Ces 2 scripts fonctionnent mais le rendu game donne un spawner éjectant à l'envers.,derrière et non devant le 1er objet ! Pourquoi?
le 1er translate l'objet auquel est appliqué ce script
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
//ne surtourt pas créer une translation après l'appui d'une touche:son appui ne fera que translater d'un pas à chaque appui
//les translations de la moins rapide à la plus rapide sont:
// translation_un
// translation_deux
// translation_trois
public class translation_un_world : MonoBehaviour
{
//float temps=0;
public float speed=5f;
void Update()
{ //temps += Time.deltaTime;
// Move the object forward along its z axis 1 unit/second.
//transform.Translate(0, 0, Time.deltaTime);
//Attention !:par défaut,cette traansformztion est en locale donc si l'objet auquel est applqué ce script une composante de rotation
//cela modfiera le vecteur de cette transsformation
//transform.Translate(speed*Time.deltaTime*speed, 0,0,Space.Self);
transform.Translate(speed*Time.deltaTime*speed, 0,0,Space.World);
//transform.Translate(0, 0, temps);
// Move the object upward in world space 1 unit/second.
}
}
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class spawn_self : MonoBehaviour
{
public float moveSpeed = 2f;
public GameObject cub;
MeshRenderer Mesh_cub;
List<Transform> allCreations1 = new List<Transform>();
List<Transform> allCreations2 = new List<Transform>();
List<MeshRenderer> allRender1 = new List<MeshRenderer>();
List<MeshFilter> allMeshFilter1 = new List<MeshFilter>();
List<MeshRenderer> allRender2 = new List<MeshRenderer>();
List<MeshFilter> allMeshFilter2 = new List<MeshFilter>();
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
//prendre la position du cube initial en mouvement:ce cube étant l'objet sur lequel est appliiqué le script
transform.position = GetComponent<Transform>().position;
if (Input.GetKeyDown (KeyCode.S)) {
GameObject objet10 = new GameObject ("objet10");
objet10.transform.position = transform.position;
allCreations1.Add (objet10.transform);
allRender1.Add (objet10.AddComponent<MeshRenderer>());
allMeshFilter1.Add (objet10.AddComponent<MeshFilter>());
}
foreach (var creation1 in allCreations1) {
if (creation1 != null)
creation1.Translate (new Vector3(1,0,1) * moveSpeed*Time.deltaTime,Space.Self);
}
foreach (var mesh1 in allMeshFilter1) {
if (mesh1 != null)
mesh1.mesh = cub.GetComponent<MeshFilter> ().mesh;
}
}
}
Ces 2 scripts fonctionnent mais le rendu game donne un spawner éjectant à l'envers.,derrière et non devant le 1er objet ! Pourquoi?
- boubouk50
- ModoGenereux
- Messages : 6222
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB]ne voir qu' à l'envers ?
Dans le premier script, tu effectues une translation globale (World) en x.
Dans le second, tu effectues une translation locale (Self) en (1, 0, 1).
Ce sont 2 repères différents si un des gameobject a subi une transformation.
Dans le second, tu effectues une translation locale (Self) en (1, 0, 1).
Ce sont 2 repères différents si un des gameobject a subi une transformation.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
- Kaloverian
- Messages : 345
- Inscription : 10 Août 2016 03:03
Re: [DB]ne voir qu' à l'envers ?
Désolé!
je viens de refaire le tout en diminuant la vitesse de translation du 1er objet et ça fonctionne
j'ai du avoir une illusion au début à cause de la bonne vitesse du 1er objet
je viens de refaire le tout en diminuant la vitesse de translation du 1er objet et ça fonctionne
j'ai du avoir une illusion au début à cause de la bonne vitesse du 1er objet
- boubouk50
- ModoGenereux
- Messages : 6222
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB]ne voir qu' à l'envers ?
C'est donc résolu?
Merci de le signaler si c'est le cas.
Merci de le signaler si c'est le cas.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation