akadoc/Assets/scripts/TchatAnim.cs

146 lines
3.4 KiB
C#
Raw Normal View History

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class TchatAnim : MonoBehaviour {
public Animator machine;
public Text charac_nb;
public InputField myfield;
public Text timer;
public Image img_bg;
float timer_sec;
int max_timer;
public string message;
//appel de WindowChat
GameObject chatWindowScroll;
ChatWindow chatWindow;
//appel de TchatAnim
GameObject createScrollListObject;
CreateScrollList createScrollList;
// Use this for initialization
2015-03-04 14:03:15 +00:00
void Start() {
timer_sec = 0;
max_timer = 15;
//appel de WindowChat
2015-03-04 14:03:15 +00:00
chatWindowScroll = GameObject.Find("ChatWindowScroll");
chatWindow = chatWindowScroll.GetComponent<ChatWindow> ();
//appel de CreateScrollList
2015-03-04 14:03:15 +00:00
createScrollListObject = GameObject.Find("log_controller");
createScrollList = createScrollListObject.GetComponent<CreateScrollList> ();
}
2015-03-04 14:03:15 +00:00
void Awake() {
}
2015-03-04 14:03:15 +00:00
// Update is called once per frame
2015-03-04 14:03:15 +00:00
void Update() {
//print (machine.GetInteger("etat_chat"));
2015-03-04 14:03:15 +00:00
if(myfield.isFocused) {
img_bg.color = Color.green;
} else
img_bg.color = Color.white;
2015-03-04 14:03:15 +00:00
if(machine.GetInteger("etat_chat") == 0) {
myfield.gameObject.SetActive(true);
2015-03-04 14:03:15 +00:00
message = myfield.text;
}
//transition vers chat_up
2015-03-04 14:03:15 +00:00
if(myfield.textComponent.cachedTextGenerator.lineCount > 1 && machine.GetInteger("etat_chat") == 0) {
print("trop long");
machine.SetInteger("etat_chat", 1);
charac_nb.text = " ";
message = myfield.text;
}
//transition vers chat_long
2015-03-04 14:03:15 +00:00
if(myfield.text.Length > 110 && machine.GetInteger("etat_chat") == 1) {
print("trop trop long");
machine.SetInteger("etat_chat", 2);
message = myfield.text;
}
2015-03-04 14:03:15 +00:00
//affichage nombre de caractère restant.
if(Input.anyKey && machine.GetInteger("etat_chat") == 2) {
charac_nb.text = (myfield.characterLimit - myfield.text.Length).ToString();
}
//les derniers caractères sont écris en rouges
2015-03-04 14:03:15 +00:00
if(myfield.text.Length > 130) {
charac_nb.color = Color.red;
} else
charac_nb.color = Color.white;
2015-03-04 14:03:15 +00:00
//transition vers chat_empty: si l'on vide complètement un message, le tcht se rabaisse.
//sinon on le laisse haut (y compris si le message est court).
2015-03-04 14:03:15 +00:00
if((machine.GetInteger("etat_chat") == 1 || machine.GetInteger("etat_chat") == 2) && myfield.text.Length == 0) {
2015-03-04 14:03:15 +00:00
machine.SetInteger("etat_chat", 0);
message = "";
}
//En cas de validation du message
2015-03-04 14:03:15 +00:00
if(Input.GetKeyDown("space") && myfield.isFocused) {
2015-03-04 14:03:15 +00:00
chatWindow.writeMessage("perceval", myfield.text); //inscription du message dans la fenetre de chat
createScrollList.writeMessage("perceval", myfield.text); //inscription du message dans les logs.
myfield.gameObject.SetActive(false);
2015-03-04 14:03:15 +00:00
myfield.text = " ";
charac_nb.text = "";
print("space pressed");
2015-03-04 14:03:15 +00:00
//texte long
if(machine.GetInteger("etat_chat") == 1 || machine.GetInteger("etat_chat") == 2) {
machine.SetInteger("etat_chat", 3);
}
//texte court
2015-03-04 14:03:15 +00:00
if(machine.GetInteger("etat_chat") == 0) {
machine.SetInteger("etat_chat", 3);
}
}
//Gestion de l'état Timer.
2015-03-04 14:03:15 +00:00
if(machine.GetInteger("etat_chat") == 3) {
timer_sec += Time.deltaTime;
2015-03-04 14:03:15 +00:00
timer.text = (max_timer - (int) timer_sec).ToString() + " secondes restantes";
2015-03-04 14:03:15 +00:00
if(timer_sec >= (float)max_timer - 1) {
timer_sec = 0;
timer.text = "";
machine.SetInteger("etat_chat", 0);
myfield.text = "";
message = "";
}
}
}
2015-03-04 14:03:15 +00:00
public void submit() {
print("submit entered");
}
}