J'ai un objet obj qui est translaté dans un environnment.
Je souhaite que dès l'objet arrive à la fin de l'environnement,il s'y retrouve au début.
Cela ne fonctionne pas avec ce script basique et je ne comprends pas pourquoi ?
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class end_to_start : MonoBehaviour
{
public GameObject environment,obj;
float debut_environment,fin_environment;
public float speed;
Vector3 posObj;
// Start is called before the first frame update
void Start()
{
float debut_environment=-environment.GetComponent<Transform>().localScale.z/2;
float fin_environment=environment.GetComponent<Transform>().localScale.z/2;
print("debut environment: "+debut_environment);
print("fin environment: "+fin_environment);
}
// Update is called once per frame
void Update()
{
obj.transform.Translate(0,0,speed*Time.deltaTime,Space.Self);
Vector3 posObj=obj.GetComponent<Transform>().position;
if(posObj.z==fin_environment)
{
obj.transform.position=new Vector3(posObj.x,posObj.y,debut_environment);
}
}
}