Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- public class TwoSidesCover : MonoBehaviour {
- 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) };//
- RaycastHit currhit = new RaycastHit();
- int layMask = 1<<8;
- int LM = 1 << 10;
- void calcCover()
- {
- for (int i = 0; i < covering.Length; i++) {
- Physics.SphereCast (transform.position+covering[i], 0.01f, transform.right, out currhit, 5f, LM);
- if (currhit.transform.GetComponent<NodeMaterial> () != null && !Physics.Linecast (transform.position, currhit.transform.position, layMask)) {
- currhit.transform.GetComponent<NodeMaterial> ().Cover ();
- }
- }
- }
- void calcUnCover()
- {
- for (int i = 0; i < covering.Length; i++) {
- Physics.SphereCast (transform.position+covering[i], 0.01f, transform.right, out currhit, 5f, LM);
- if (currhit.transform.GetComponent<NodeMaterial> () != null && !Physics.Linecast (transform.position, currhit.transform.position, layMask)) {
- currhit.transform.GetComponent<NodeMaterial> ().UnCover ();
- }
- }
- }
- void OnMouseDown()
- {
- //transform.position = new Vector3 (Mathf.Round (transform.position.x), transform.position.y, Mathf.Round (transform.position.z));
- calcUnCover();
- }
- void OnMouseUp()
- {
- transform.position = new Vector3 (Mathf.Round (transform.position.x), transform.position.y, Mathf.Round (transform.position.z));
- calcCover ();
- }
- void Start () {
- calcCover ();
- }
- void Update () {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement