Quand j'écris ce code;
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class trajet_dans_autre_repere : MonoBehaviour
{
float a,b,c;
public GameObject objet,empty;
Vector3 vect;
public float rayon,speed;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
objet.transform.parent=empty.transform;
a=rayon*Mathf.Cos(speed * Time.time);
b=0;
c=rayon*Mathf.Sin(speed * Time.time);
vect.x=a;
vect.y=b;
vect.z=c;
objet.transform.localPosition=vect;
}
}
Quand j'écris maintenant ce code:
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class essai : MonoBehaviour
{
public GameObject objet,empty;
public Vector3 vect;
// Start is called before the first frame update
public float speed;
void Start()
{
objet.transform.parent=empty.transform;
}
// Update is called once per frame
void Update()
{
objet.transform.Translate(speed*Time.deltaTime*vect,Space.Self);
}
}
Pourquoi cela?
Peut-on remédier à cela dans le second code en utilisant toujourrs la fonction transform.Translate ou une fonction très similaire?
(iIl devrait exister dans l'API une fonction du genre transform.localTranslate( ))
merci de votre aide