Je l'ai fait en Cs car le js, je supporte pas !
A toi de le transcrire, c'est pas bien compliqué..
Ya juste un petit souci de décalage mais bon le principe est là!
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class CoverflowCS : MonoBehaviour {
public bool deplaceGo; // Declanchement de deplacement
public int vitesse = 1; // Vitesse de deplacement
public Transform[] plans; // Array Plans
public Object[] textures; // Array Textures
void Start()
{
textures = Resources.LoadAll("Textures", typeof(Texture2D)); // On recup les textures dans le dossiers
for (int i = 0; i < plans.Length; i++) // On affecte une texture au hasard a chaque plan
{
plans[i].renderer.material.mainTexture = (Texture2D) textures[Random.Range(0, textures.Length)];
}
}
void OnGUI()
{
if (GUI.Button(new Rect( 0, 0, 100, 20 ), "Deplacement")) { deplaceGo = true; } // Lance le deplacement
if(deplaceGo){ Deplacement(); } // Deplacement
}
void Deplacement() // Fonction deplacement
{
if(plans[0].transform.position.x > -40){ // On deplace le tout tant que le plan a gauche est superieur a 40 en x (visibilité cam)
plans[0].transform.position -= new Vector3(vitesse, 0, 0);
plans[1].transform.position -= new Vector3(vitesse, 0, 0);
plans[2].transform.position -= new Vector3(vitesse, 0, 0);
plans[3].transform.position -= new Vector3(vitesse, 0, 0);
}
else{ // sinon si la position de plan le plus a gauche est inferieur a 40 (visibilité de la cam), on stop le deplacement, on prend ce meme plan et on le met à droite
plans[0].transform.position = new Vector3(40, 0, 0);
deplaceGo = false;
Replace();
}
}
void Replace() // on restructure l'array pour mettre l'ancien premier plan en dernier, le 2eme en 1er etc...
{
Transform planfin = plans[0];
plans[0] = plans[1];
plans[1] = plans[2];
plans[2] = plans[3];
plans[3] = planfin;
TextureChange(planfin); // et enfin on change la texture en indiquant le nouveau dernier plan
}
void TextureChange(Transform _planfin)
{
_planfin.renderer.material.mainTexture = (Texture2D) textures[Random.Range(0, textures.Length)];
}
}