using System.Collections; using System.Collections.Generic; using UnityEngine; // Copyright: Jokerminator Inc. // License: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) public class SpriteSheetOneTimeController : MonoBehaviour { private Renderer r_simpleAnimSprite; private float f_spriteTiling; private float f_framesPerSecond; private float f_currentTimeOffset; void Start () { r_simpleAnimSprite = GetComponent( ); r_simpleAnimSprite.enabled = false; f_spriteTiling = (float)r_simpleAnimSprite.material.GetInt( "_SpriteTiling" ); f_framesPerSecond = ( float )r_simpleAnimSprite.material.GetInt( "_FramesPerSecond" ); } private void OnMouseDown( ) //todo: uGUI { StartSpriteSheetOneTimePass( ); } private void StartSpriteSheetOneTimePass() { if ( r_simpleAnimSprite.enabled == false ) { r_simpleAnimSprite.enabled = true; f_currentTimeOffset = 0.0F; float timeOffset = ( f_spriteTiling * f_spriteTiling / f_framesPerSecond ) - ( Time.time % ( f_spriteTiling * f_spriteTiling / f_framesPerSecond ) ); r_simpleAnimSprite.material.SetFloat( "_TimeOffset", timeOffset ); } } void Update( ) { if( r_simpleAnimSprite.enabled == true ) { f_currentTimeOffset += Time.deltaTime; } if( r_simpleAnimSprite.enabled == true && f_currentTimeOffset > f_spriteTiling * f_spriteTiling / f_framesPerSecond ) { r_simpleAnimSprite.enabled = false; } } }