Skip to content

Instantly share code, notes, and snippets.

@gegagome
Created May 18, 2016 20:33
Show Gist options
  • Save gegagome/0be97924fda0fdcc416dd4cbc3a96430 to your computer and use it in GitHub Desktop.
Save gegagome/0be97924fda0fdcc416dd4cbc3a96430 to your computer and use it in GitHub Desktop.
using UnityEngine;
using UnityEngine.EventSystems;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
public delegate void LetterDelegate (int letterInt);
public class BigLettersController : MonoBehaviour {
public const float LIMIT_X = 150f; // range of this letter before tweening left or right
public const float TWEENING_TIME = 0.3f; // time for tweening horizontally (above)
public const int AMOUNT_OF_LETTERS = 3;
// int BigLettersListAmount { get; set; }
// int NumberOfLetters { get; set; }
bool IsLetterMovedBackwards { get; set; }
float _leftTransform;
float _centerTransform;
float _rightTransform;
int _currentNumber;
int _previousNumber;
int _nextNumber;
public int CurrentNumber {
get {
return _currentNumber;
}
set {
if (_currentNumber == 0) {
} else if (_currentNumber >= 26) {
}
}
}
public int PreviousNumber {
get {
return _previousNumber;
}
set {
_previousNumber = value;
}
}
public int NextNumber {
get {
return +_nextNumber;
}
set {
_nextNumber = value;
}
}
public bool OnBoundsOfAlphabet = false;
public BigLetter _bigLetter;
public List<BigLetter> _letters;
public RectTransform[] _rectTransforms;
void Awake () {
InitializeLetters();
InitializeRectTransformPoints ();
_letters[0]._aText.text = "Aa";
_letters[1]._aText.text = "Bb";
_letters[2]._aText.text = "Cc";
}
void OnEnable () {
BigLetter.OnLetterMovedRight += MovingBackwards;
BigLetter.OnLetterMovedLeft += MovingForward;
}
void OnDisable () {
BigLetter.OnLetterMovedRight -= MovingBackwards;
BigLetter.OnLetterMovedLeft -= MovingForward;
}
void InitializeLetters () {
BigLetter temp;
for (int i = 0; i < AMOUNT_OF_LETTERS; i++) {
temp = (BigLetter)Instantiate(_bigLetter);
temp.name = "Letter " + i;
temp.ListIndex = i;
temp.transform.SetParent(transform);
temp.transform.position = _rectTransforms[i].transform.position;
_letters.Add(temp);
_letters[i]._aText = temp.GetComponent<Text>();
_letters[i]._aRectTransform = temp.GetComponent<RectTransform>();
}
}
void InitializeRectTransformPoints () {
_leftTransform = _rectTransforms[0].anchoredPosition.x;
_centerTransform = _rectTransforms[1].anchoredPosition.x;
_rightTransform = _rectTransforms[2].anchoredPosition.x;
}
void MovingBackwards (int aLetterInt) {
IsLetterMovedBackwards = true;
NumberShifter(aLetterInt, IsLetterMovedBackwards);
_letters[aLetterInt].MoveLetter(_rightTransform);
NumberShiftsRight(); // for determining which letter
}
void MovingForward (int aLetterInt) {
IsLetterMovedBackwards = false;
NumberShifter(aLetterInt, IsLetterMovedBackwards);
_letters[aLetterInt].MoveLetter(_leftTransform);
NumberShiftsLeft(); // for determining which letter
}
void NumberShiftsRight () {
++CurrentNumber;
}
void NumberShiftsLeft () {
--CurrentNumber;
}
void BigLetterShifter (int movingNumber, bool isForward) {
if (isForward) {
}
_letters[movingNumber].MoveLetter(_leftTransform);
}
void NumberShifter (int number, bool movingBackwards) {
if (movingBackwards) {
if (number == 1) {
_letters[0].MoveLetter(_centerTransform);
_letters[2].MoveLetter(_leftTransform);
} else if (number == 2) {
_letters[1].MoveLetter(_centerTransform);
_letters[0].MoveLetter(_leftTransform);
} else {
_letters[2].MoveLetter(_centerTransform);
_letters[1].MoveLetter(_leftTransform);
}
} else {
if (number == 1) {
_letters[2].MoveLetter(_centerTransform);
_letters[0].MoveLetter(_rightTransform);
} else if (number == 2) {
_letters[0].MoveLetter(_centerTransform);
_letters[1].MoveLetter(_rightTransform);
} else {
_letters[1].MoveLetter(_centerTransform);
_letters[2].MoveLetter(_rightTransform);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment