TapMessage.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. public class TapMessage : MonoBehaviour {
  5. public enum Time
  6. {
  7. threeSecond,
  8. twoSecond,
  9. oneSecond
  10. };
  11. public enum Position
  12. {
  13. top,
  14. bottom
  15. };
  16. public static void ShowMessage ( string msg, TapMessage.Position position, TapMessage.Time time )
  17. {
  18. //Load message prefab from resources folder
  19. GameObject messagePrefab = Resources.Load ( "TapMessage" ) as GameObject;
  20. //Get container object of message
  21. GameObject containerObject = messagePrefab.gameObject.transform.GetChild ( 0 ).gameObject;
  22. //Get text object
  23. GameObject textObject = containerObject.gameObject.transform.GetChild ( 0 ).GetChild ( 0 ).gameObject;
  24. //Get text property
  25. Text msg_text = textObject.GetComponent<Text> ( );
  26. //Set message to text ui
  27. msg_text.text = msg;
  28. //Set position of container object of message
  29. SetPosition ( containerObject.GetComponent<RectTransform> ( ), position );
  30. //Spawn message object with all changes
  31. GameObject clone = Instantiate ( messagePrefab );
  32. // Destroy clone of message object according to the time
  33. RemoveClone ( clone, time );
  34. }
  35. private static void SetPosition ( RectTransform rectTransform, Position position )
  36. {
  37. if (position == Position.top)
  38. {
  39. rectTransform.anchorMin = new Vector2 ( 0.5f, 1f );
  40. rectTransform.anchorMax = new Vector2 ( 0.5f, 1f );
  41. rectTransform.anchoredPosition = new Vector3 ( 0.5f, -100f, 0 );
  42. }
  43. else
  44. {
  45. rectTransform.anchorMin = new Vector2 ( 0.5f, 0 );
  46. rectTransform.anchorMax = new Vector2 ( 0.5f, 0 );
  47. rectTransform.anchoredPosition = new Vector3 ( 0.5f, 100f, 0 );
  48. }
  49. }
  50. private static void RemoveClone ( GameObject clone, Time time )
  51. {
  52. if (time == Time.oneSecond)
  53. {
  54. Destroy ( clone.gameObject, 1f );
  55. }
  56. else if (time == Time.twoSecond)
  57. {
  58. Destroy ( clone.gameObject, 2f );
  59. }
  60. else
  61. {
  62. Destroy ( clone.gameObject, 3f );
  63. }
  64. }
  65. }