Advertisement
Guest User

Untitled

a guest
Nov 12th, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class PhotoController : MonoBehaviour {
  5. public Transform _frame;
  6. private SpriteRenderer spRend;
  7. private GameObject frame;
  8. private GameObject player;
  9. public byte distance;
  10. private float dist;
  11. public float wait;
  12. private bool a;
  13. private bool b;
  14. private float x;
  15. private float y;
  16. void Start()
  17. {
  18. a = true;
  19. b = false;
  20. player = GameObject.Find("Player");
  21. spRend = GetComponent<SpriteRenderer>();
  22. StartCoroutine(DistanceActivate());
  23. }
  24. IEnumerator DistanceActivate()
  25. {
  26. while (a)
  27. {
  28. dist = Vector3.Distance(player.transform.position, transform.position);
  29. if (dist >= distance && b == true)
  30. {
  31. frame.gameObject.SetActive(false);
  32. }
  33. else if (dist < distance && b == true)
  34. {
  35. frame.gameObject.SetActive(true);
  36. }
  37. else
  38. {
  39. b = true;
  40. InstanteGo();
  41. CreateFrame();
  42. }
  43. yield return new WaitForSeconds(wait);
  44. }
  45. }
  46. public void InstanteGo()
  47. {
  48. Instantiate(_frame, new Vector3(transform.position.x, transform.position.y, transform.position.z), Quaternion.identity);
  49. frame = GameObject.Find("Frame(Clone)");
  50. frame.name = "Frame";
  51. }
  52. void CreateFrame()
  53. {
  54. MeshFilter meshF = frame.GetComponent<MeshFilter>();
  55. Mesh meshR = meshF.mesh;
  56. x = spRend.GetComponent<SpriteRenderer>().bounds.size.x;
  57. y = spRend.GetComponent<SpriteRenderer>().bounds.size.y;
  58. Vector3[] vertices = new Vector3[]
  59. {
  60. //internal top face//
  61. new Vector3(-x/2, y/2, 0),//left top internal, 0
  62. new Vector3(x/2, y/2, 0),//right top internal, 1
  63. //...
  64. new Vector3(-x/2 - 0.303f, y/2 + 0.303f, 0),//right bottom sixth1, 219
  65. //sixth1 right face//
  66. new Vector3(x/2 + 0.303f, y/2 + 0.303f, -0.2747f),//left top sixth1, 220
  67. new Vector3(x/2 + 0.303f, y/2 + 0.303f, 0),//right top sixth1, 221
  68. new Vector3(x/2 + 0.303f, -y/2 - 0.303f, -0.2747f),//left bottom sixth1, 222
  69. new Vector3(x/2 + 0.303f, -y/2 - 0.303f, 0)//right bottom sixth1, 223
  70. };
  71. int[] triangles = new int[]
  72. {
  73. 0,2,3,
  74. 3,1,0,//
  75. 4,6,7,
  76. //...
  77. 215,213,212,//
  78. 216,218,219,
  79. 219,217,216,//
  80. 220,222,223,
  81. 223,221,220//
  82. };
  83. Vector2[] uvs = new Vector2[]
  84. {
  85. new Vector2(0,1),
  86. new Vector2(0,0),
  87. new Vector2(1,1),
  88. //...
  89. new Vector2(1,0), //
  90. new Vector2(0,1),
  91. new Vector2(0,0),
  92. new Vector2(1,1),
  93. new Vector2(1,0) //
  94. };
  95. meshR.Clear();
  96. meshR.vertices = vertices;
  97. meshR.triangles = triangles;
  98. meshR.uv = uvs;
  99. meshR.Optimize();
  100. meshR.RecalculateNormals();
  101. //???
  102. }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement