objet en mouvement le long de son RayCast

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
Kaloverian
Messages : 336
Inscription : 10 Août 2016 03:03

objet en mouvement le long de son RayCast

Message par Kaloverian » 29 Avr 2019 18:43

bonjour,

avec if(Physics.RayCast(arguments)),un rayon invisible se crée depuis la position de l'objet jusqu'au hit.
Même le rayon réfléchi sur hit peut être dessiné

Y a-t-il une fonction particulière de l'API de Unity permettant que l'objet suive ces rayons?Si oui,lesquelles?
ou alors il faut implémenter par soi-même?Si c'est le cas,quel est en pseudo-code cette implémentation?

merci de votre aide

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: objet en mouvement le long de son RayCast

Message par Max » 29 Avr 2019 18:53

Bonsoir,
Kaloverian a écrit :
29 Avr 2019 18:43
Y a-t-il une fonction particulière de l'API de Unity permettant que l'objet suive ces rayons?Si oui,lesquelles?
Oui.
Suivre une droite (ton rayon) n'est rien d'autre qu'une translation.
Donc déjà il suffit de regarder du coté de Translate (ainsi que Transform.forward par exemple).
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Kaloverian
Messages : 336
Inscription : 10 Août 2016 03:03

Re: objet en mouvement le long de son RayCast

Message par Kaloverian » 29 Avr 2019 19:03

oui j'y avais évidemment pensé...
mais pour suivre le rayon réfléchi,il n'y alors pas d'autre moyen de faire sur l'objet( au moment où il arrive au hit) un transform.Rotate en coordonnées locales de l'angle compris entre le rayon incident et réfléchi ?

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: objet en mouvement le long de son RayCast

Message par Max » 29 Avr 2019 19:59

Kaloverian a écrit :
29 Avr 2019 19:03
mais pour suivre le rayon réfléchi,il n'y alors pas d'autre moyen de faire sur l'objet( au moment où il arrive au hit) un transform.Rotate en coordonnées locales de l'angle compris entre le rayon incident et réfléchi ?
je ne comprend pas trop ton histoire de rayons réfléchis.
Maintenant un rayon, c'est un point de départ, un point d'arrivé, donc facile de déterminer une direction. Quand ton objet arrive à un point de changement de rayon, pas de rotation à proprement parlé à faire, mais un changement de direction (changement au niveau du transform.forward par exemple) et donc on reste sur des translations.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
ZJP
Messages : 5745
Inscription : 15 Déc 2009 06:00

Re: objet en mouvement le long de son RayCast

Message par ZJP » 29 Avr 2019 21:37

Kaloverian a écrit :
29 Avr 2019 19:03
oui j'y avais évidemment pensé...
mais pour suivre le rayon réfléchi,il n'y alors pas d'autre moyen de faire sur l'objet( au moment où il arrive au hit) un transform.Rotate en coordonnées locales de l'angle compris entre le rayon incident et réfléchi ?
Et en prenant la "normale" du point d'impact comme point de départ de la "réflexion" ?!.

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: objet en mouvement le long de son RayCast

Message par Max » 29 Avr 2019 21:56

ZJP a écrit :
29 Avr 2019 21:37
Et en prenant la "normale" du point d'impact comme point de départ de la "réflexion" ?!.
+1
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Kaloverian
Messages : 336
Inscription : 10 Août 2016 03:03

incrémenter les coordonnées locales

Message par Kaloverian » 02 Mai 2019 01:18

bonjour,

Partant d'un objet,il est facile de le translater en incrémentant ses coordonnées globales.
Mais comme à un moment donné,cet objet tourne,afin de ne pas changer la nature de cette translation,je préfère incrémenter ses cordonnées locales et sans utiliser transform.Translate
Ce que reflète ce petit script C# où rien n'est translaté selon l'axe local X!
Pourquoi?

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class translation_locale : MonoBehaviour {

	public GameObject objet;
	public Transform obj;


	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {

	
		Vector3 pos = transform.position;
	       Vector3 posLocal = transform.InverseTransformPoint(pos);
		
		posLocal.x+=1;
		

	}
}





merci de votre aide

Répondre

Revenir vers « (C#) CSharp »