Created
May 18, 2016 20:33
-
-
Save gegagome/0be97924fda0fdcc416dd4cbc3a96430 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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