chronos horizontal moiving text

Цветная бегущая строка в стиле ZX-Spectrum

Эффект бегущей строки.

в стиле ZX-Spectrum

chronos horizontal moiving text

chronos horizontal moiving text

 

//************************************************//
//********** Author:  Dimusikus@mail.ru **********//
//**********   Site:  http://midadev.ru **********//
//************************************************//
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

//скроллит текст горизонтально, посимвольно

public class HorizontalMovedTextChar : MyMonoBehaviour 
{
  //--------------------------------
  [Header("Состояние объекта изначально")]
  [SerializeField] private bool GameObjectSetActive	= true;

  [Header("Событие по которому строка начнёт движение")]
  [SerializeField] 	private GameEvents EventOnStart = GameEvents.nil;

  [Header("Событие которое сгенерируется по окончанию")]
  [SerializeField] 	private GameEvents GenerateEventOnEnd = GameEvents.nil;
  //--------------------------------
  private Text   text_component;
  private string text_original;
  private string text;
  //--------------------------------

  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  void Start () 
  {
    text_component = this.GetComponent<Text>();
    text_original = text_component.text;
    if(EventOnStart 	!= GameEvents.nil) globalEManager.StartListening(EventOnStart, StartMoving);
    else StartMoving();

    gameObject.SetActive(GameObjectSetActive);
  }
  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  public void StartMoving()
  {
    gameObject.SetActive(true);
    text = text_original;
    InvokeRepeating("MovingText",0,0.15f);
  }
  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  private void MovingText () 
  {
    //Debug.Log("HorizontalMovedTextChar : text.Length = " + text.Length);
    //21 именно как и ниже, чила там и тут должны быть одинаковыми
    if(text.Length<=21)
    {
      if(DebugLog==true) Debug.Log("HorizontalMovedTextChar : Cancel Invoka" );
      CancelInvoke();
      globalEManager.TriggerEvent(GenerateEventOnEnd,gameObject);
      gameObject.SetActive(GameObjectSetActive);
      return;
    }

    text =  text.Remove(0,1);

    text_component.text = InsertColor(text);
    //text = text.Remove(0,1);

    //Debug.Log("HorizontalMovedTextChar : text=" + text);
  }
  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  private string InsertColor(string s)
  {
    //21 именно как и выше, чила там и тут должны быть одинаковыми
    s = s.Insert(21,"</color>");
    s = s.Insert(20,"<color=black>");

    s = s.Insert(20,"</color>");
    s = s.Insert(19,"<color=red>");

    s = s.Insert(19,"</color>");
    s = s.Insert(18,"<color=blue>");

    s = s.Insert(18,"</color>");
    s = s.Insert(17,"<color=magenta>");

    s = s.Insert(17,"</color>");
    s = s.Insert(16,"<color=green>");

    s = s.Insert(16,"</color>");
    s = s.Insert(15,"<color=cyan>");

    s = s.Insert(15,"</color>");
    s = s.Insert(14,"<color=yellow>");




    s = s.Insert(6,"</color>");
    s = s.Insert(5,"<color=yellow>");

    s = s.Insert(5,"</color>");
    s = s.Insert(4,"<color=cyan>");

    s = s.Insert(4,"</color>");
    s = s.Insert(3,"<color=green>");

    s = s.Insert(3,"</color>");
    s = s.Insert(2,"<color=magenta>");

    s = s.Insert(2,"</color>");
    s = s.Insert(1,"<color=blue>");

    s = s.Insert(1,"</color>");
    s = s.Insert(0,"<color=red>");

    return s;
  }
  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  void OnDisable()
  {
    CancelInvoke();
  }
  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


}

 

Теги: , , , ,

Трекбэк с Вашего сайта.

Дмитирй

This information box about the author.

Оставить комментарий

Вы должны войти чтобы оставить комментарий.

Offcanvas

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.