Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using EasyBuildSystem.Runtimes.Internal.Builder;
- using EasyBuildSystem.Runtimes.Internal.Managers;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using UnityEngine;
- public class CollisionDetection : MonoBehaviour
- {
- public GameObject m_MyObject;
- BoxCollider m_Collider;
- void Start()
- {
- if (m_MyObject != null)
- m_Collider = m_MyObject.GetComponent<BoxCollider>();
- }
- private void Update()
- {
- if (GameMaster.Instance.BuildSystem.currentPreview != null)
- {
- m_Collider.center = GameMaster.Instance.BuildSystem.currentPreview.GetComponent<BoxCollider>().center;
- m_Collider.size = GameMaster.Instance.BuildSystem.currentPreview.GetComponent<BoxCollider>().size;
- }
- Ray ray = Camera.main.ScreenPointToRay(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 1.0f));
- RaycastHit[] hitpoints = Physics.RaycastAll(ray).OrderBy(h => h.distance).ToArray(); //sort by distance
- foreach (RaycastHit hit in hitpoints)
- {
- if (hit.collider.gameObject != this.gameObject)
- {
- Vector3 newPos = hit.point;
- transform.position = newPos;
- break;
- }
- }
- if (GameMaster.Instance.placedParts != null)
- {
- foreach (var part in GameMaster.Instance.placedParts)
- {
- Debug.Log(GameMaster.Instance.placedParts.Count);
- if (m_Collider.bounds.Intersects(part.GetComponent<BoxCollider>().bounds))
- {
- GameMaster.Instance.BuildSystem.allowPlacement = false;
- }
- else
- {
- GameMaster.Instance.BuildSystem.allowPlacement = true;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement