Block.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using UnityEngine;
  2. using System.Collections;
  3. public class Block : MapObject {
  4. public Texture[] textureArr;
  5. public LineRenderer lineRenderer;
  6. public void Init (Map map, TeamUtil.Team team = TeamUtil.Team.None)
  7. {
  8. base.Init (map);
  9. this.team = team;
  10. AStarNode.Type astarNodeType = TeamUtil.GetAStarNodeType(team);
  11. AStarNode node = map.GetAStarNode(col, row);
  12. node.type = astarNodeType;
  13. }
  14. public override TeamUtil.Team team {
  15. get {
  16. return base.team;
  17. }
  18. set {
  19. base.team = value;
  20. int index = value.GetHashCode() - 1;
  21. if(index < 0)
  22. index = TeamUtil.Team.Yellow.GetHashCode();
  23. Renderer[] renderers = this.GetComponentsInChildren<Renderer>();
  24. for(int i=0; i<renderers.Length; i++)
  25. {
  26. renderers[i].material.mainTexture = textureArr[index];
  27. }
  28. }
  29. }
  30. void Update()
  31. {
  32. lineRenderer.material.SetTextureOffset("_MainTex", new Vector2(-GameTime.time * 2f, 0f));
  33. }
  34. public override void Remove ()
  35. {
  36. AStarNode node = map.GetAStarNode(col, row);
  37. node.type = AStarNode.Type.Empty;
  38. Destroy(this.gameObject);
  39. }
  40. }