// Update is called once per frame void Update() { Vector3 toolPos = getHitPoint(); if (toolPos != failureRaycastPoint) { tool.transform.position = toolPos; } if (Input.GetMouseButtonDown(0)) { RaycastHit hitInfo; scannedSample = ReturnClickedObject(out hitInfo); if (scannedSample != null) { CSG_Model result = subtraction(scannedSample, tool); scannedSample.GetComponent <MeshFilter>().sharedMesh = result.mesh; scannedSample.GetComponent <MeshRenderer>().sharedMaterials = result.materials.ToArray(); // composite = new GameObject(); // composite.AddComponent<MeshFilter>().sharedMesh = result.mesh; // composite.AddComponent<MeshRenderer>().sharedMaterials = result.materials.ToArray(); } } }
private IEnumerator boolenObject(GameObject objects) { objects.SetActive(false); CSG_Model result = Boolean.Subtract(objects.transform.GetChild(0).gameObject, gameObject); yield return(new WaitForFixedUpdate()); GameObject composite = new GameObject(); GameObject parentObject = new GameObject(); parentObject.transform.SetParent(rows); parentObject.transform.position = objects.transform.position; composite.AddComponent <MeshFilter>().sharedMesh = result.mesh; composite.AddComponent <MeshRenderer>().sharedMaterials = result.materials.ToArray(); composite.AddComponent <MeshCollider>(); parentObject.name = objects.name; parentObject.tag = objects.tag; composite.transform.SetParent(parentObject.transform); parentObject.AddComponent <BoxCollider>(); parentObject.GetComponent <BoxCollider>().size = new UnityEngine.Vector3(4, 0.5f, 1); parentObject.GetComponent <BoxCollider>().isTrigger = true; Debug.Log("Run"); }