Unity3D – Texture Mover – Javascript
How to move texture via code.
Create a Plane with
– Material with a _MainTex (if you use a diffuse material it is the main color texture)
– TextureMover.js
Simple code:
#pragma strict // Scroll main texture based on time var scrollSpeed : float; // Assign in Inspector, start try 0.5 function Start () { // setup Main Texture (scaleX,scaleY) // x = 0.5 perchè la texture che uso è il doppio in larghezza della dimensione del piano // il piano è 16:9, ta texture 32:9 per avere un landscape più ampio renderer.material.SetTextureScale ("_MainTex", Vector2(0.5,1)); }// END Start() function Update () { var offset : float = Time.time * scrollSpeed; renderer.material.SetTextureOffset ("_MainTex", Vector2(offset,0)); }// END Update()
Play to see the final result
Pro code:
#pragma strict var isVertical : boolean = false; // check in Inspector if you need a vertical scrool var invertDirection : boolean = false; // check in Inspector if you need change scrool direction // Scroll main texture based on time var scrollSpeed : float; // Assign in Inspector, start try 0.5 var scaleX : float; // X scale of the texture var scaleY : float; // X scale of the texture function Start () { // setup Main Texture (scaleX,scaleY) START ############################################### // ad esempio scaleX = 0.5 se la texture che uso è il doppio in larghezza della dimensione del piano // il piano è 16:9, la texture 32:9 renderer.material.SetTextureScale ("_MainTex", Vector2(scaleX,scaleY)); // setup Main Texture (scaleX,scaleY) END ################################################# }// END Start() function Update () { MoveTexture(); // devo richiamarla da update perchè si deve aggiornare ad ogni frame }// END Update() function MoveTexture(){ var offset : float; // lo spostamento della texture... // left->right or right->left or up->down or down->up ---------------------------------------------- if (invertDirection){ // positivo offset = Time.time * -scrollSpeed; } if (!invertDirection){ // negativo offset = Time.time * scrollSpeed; } // vertical or horizontal ------------------------------------------------------------------------- if (isVertical) { // in verticale renderer.material.mainTextureOffset = Vector2 (0, offset); }else{ // in orizzontale renderer.material.mainTextureOffset = Vector2 (offset, 0); } }// END MoveTexture()
Setup in Inspector the value of variables
Play, you can change values on the fly into Inspector!