Advertisement
Guest User

Untitled

a guest
Aug 12th, 2016
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class TwoSidesCover : MonoBehaviour {
  5.  
  6. Vector3 [] covering = {new Vector3(0,0,0),new Vector3(1,0,-1),new Vector3(1,0,0),new Vector3(1,0,1),new Vector3(2,0,-2),new Vector3(2,0,-1),new Vector3(2,0,0),new Vector3(2,0,1),new Vector3(2,0,2),new Vector3(3,0,-2),new Vector3(3,0,-1),new Vector3(3,0,0),new Vector3(3,0,1),new Vector3(3,0,2),new Vector3(4,0,-2),new Vector3(4,0,-1),new Vector3(4,0,0),new Vector3(4,0,1),new Vector3(4,0,2),new Vector3(5,0,-1),new Vector3(5,0,0),new Vector3(5,0,1),new Vector3(6,0,0), new Vector3(-2,0,0),new Vector3(-3,0,-1),new Vector3(-3,0,0),new Vector3(-3,0,1),new Vector3(-4,0,-2),new Vector3(-4,0,-1),new Vector3(-4,0,0),new Vector3(-4,0,1),new Vector3(-4,0,2),new Vector3(-5,0,-1),new Vector3(-5,0,0),new Vector3(-5,0,1),new Vector3(-5,0,2),new Vector3(-5,0,-2),new Vector3(-6,0,-2),new Vector3(-6,0,-1),new Vector3(-6,0,0),new Vector3(-6,0,1),new Vector3(-6,0,2),new Vector3(-7,0,-1),new Vector3(-7,0,0),new Vector3(-7,0,1),new Vector3(-8,0,0) };//
  7. RaycastHit currhit = new RaycastHit();
  8. int layMask = 1<<8;
  9. int LM = 1 << 10;
  10.  
  11.  
  12. void calcCover()
  13. {
  14.  
  15.  
  16. for (int i = 0; i < covering.Length; i++) {
  17.  
  18. Physics.SphereCast (transform.position+covering[i], 0.01f, transform.right, out currhit, 5f, LM);
  19.  
  20. if (currhit.transform.GetComponent<NodeMaterial> () != null && !Physics.Linecast (transform.position, currhit.transform.position, layMask)) {
  21. currhit.transform.GetComponent<NodeMaterial> ().Cover ();
  22. }
  23.  
  24.  
  25. }
  26. }
  27.  
  28. void calcUnCover()
  29. {
  30.  
  31.  
  32. for (int i = 0; i < covering.Length; i++) {
  33.  
  34. Physics.SphereCast (transform.position+covering[i], 0.01f, transform.right, out currhit, 5f, LM);
  35.  
  36. if (currhit.transform.GetComponent<NodeMaterial> () != null && !Physics.Linecast (transform.position, currhit.transform.position, layMask)) {
  37. currhit.transform.GetComponent<NodeMaterial> ().UnCover ();
  38. }
  39.  
  40. }
  41. }
  42.  
  43.  
  44. void OnMouseDown()
  45. {
  46.  
  47. //transform.position = new Vector3 (Mathf.Round (transform.position.x), transform.position.y, Mathf.Round (transform.position.z));
  48. calcUnCover();
  49.  
  50. }
  51.  
  52. void OnMouseUp()
  53. {
  54.  
  55. transform.position = new Vector3 (Mathf.Round (transform.position.x), transform.position.y, Mathf.Round (transform.position.z));
  56. calcCover ();
  57. }
  58.  
  59. void Start () {
  60.  
  61. calcCover ();
  62. }
  63.  
  64. void Update () {
  65.  
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement