private void OnSliceFinished(BzSliceTryResult result) { Debug.Log("Result: " + result.sliced + " - " + result.outObjectNeg + "," + result.outObjectPos); if (result.sliced) { result.outObjectNeg.SetActive(true); Destroy(result.outObjectPos); } }
protected override void OnSliceFinished(BzSliceTryResult result) { if (!result.sliced) { return; } // on sliced, get data that we saved in 'PrepareData' method var addData = (ResultData)result.addData; addData.stopwatch.Stop(); }
protected override void OnSliceFinished(BzSliceTryResult result) { // if (!result.sliced) // return; // // on sliced, get data that we saved in 'PrepareData' method // var addData = (ResultData)result.addData; // addData.stopwatch.Stop(); // drawText += gameObject.name + // ". VertCount: " + addData.vertexCount.ToString() + ". ms: " + // addData.stopwatch.ElapsedMilliseconds.ToString() + Environment.NewLine; // if (drawText.Length > 1500) // prevent very long text // drawText = drawText.Substring(drawText.Length - 1000, 1000); }
public void SliceTest() { // arrange var go = GameObject.CreatePrimitive(PrimitiveType.Cube); var slicer = go.AddComponent <ObjectSlicerMock>(); slicer.Asynchronously = false; slicer.DefaultSliceMaterial = new Material(Shader.Find("Standard")); BzSliceTryResult result = null; Action <BzSliceTryResult> action = (x) => { result = x; }; // act slicer.Slice(new Plane(Vector3.up, Vector3.zero), 0, action); // assert if (!result.sliced) { throw new InvalidOperationException("Not sliced"); } var mesh1 = result.outObjectNeg.GetComponent <MeshFilter>().sharedMesh; var mesh2 = result.outObjectPos.GetComponent <MeshFilter>().sharedMesh; Assert.AreEqual(4 * 6, mesh1.vertexCount); Assert.AreEqual(4 * 6, mesh2.vertexCount); Assert.AreEqual(6 * 2 * 3, mesh1.triangles.Length); Assert.AreEqual(6 * 2 * 3, mesh2.triangles.Length); var up = mesh1.vertices.Where(v => v.y == 0.5f).ToArray(); var down = mesh1.vertices.Where(v => v.y == 0f).ToArray(); Assert.AreEqual(12, up.Length); Assert.AreEqual(12, down.Length); var vertices = mesh1.vertices; var normals = mesh1.normals; var vv = vertices.Where((n, i) => normals[i] == Vector3.up).ToArray(); Assert.AreEqual(4, vv.Length); }
protected override void OnSliceFinished(BzSliceTryResult result) { if (!result.sliced) { return; } OnSliced?.Invoke(this.gameObject.GetInstanceID()); // on sliced, get data that we saved in 'PrepareData' method var addData = (ResultData)result.addData; addData.stopwatch.Stop(); drawText += gameObject.name + ". VertCount: " + addData.vertexCount.ToString() + ". ms: " + addData.stopwatch.ElapsedMilliseconds.ToString() + Environment.NewLine; if (drawText.Length > 1500) // prevent very long text { drawText = drawText.Substring(drawText.Length - 1000, 1000); } }
public void OnSliceFinished(BzSliceTryResult result) { if (!result.sliced) { return; } piecesCutCount++; // Debug.Log("pieces Cut: " + piecesCutCount); Gameplay_References._instance._soundManager.PlaySoundEffectOneShot(0); Gameplay_References._instance._uiManager.SetLevelFillerValue(piecesCutCount / TotalPiecesCount); PlayExclamationText(); Gameplay_References._instance._meshSlicesTracker.GetCutSlices(result.outObjectPos, result.outObjectNeg); if (GameConstants.isVibrationEnabled) { // Debug.Log ("vibrating"); Vibration.VibratePeek(); } }
protected override void OnSliceFinished(BzSliceTryResult result) { if (!result.sliced) { return; } // on sliced, get data that we saved in 'PrepareData' method var addData = (ResultData)result.addData; addData.stopwatch.Stop(); drawText += gameObject.name + ". VertCount: " + addData.vertexCount.ToString() + ". ms: " + addData.stopwatch.ElapsedMilliseconds.ToString() + Environment.NewLine; if (drawText.Length > 1500) // prevent very long text { drawText = drawText.Substring(drawText.Length - 1000, 1000); } // Gameplay_References._instance._meshSlicesTracker.GetCutSlices(result.outObjectPos, result.outObjectNeg); }
protected override void OnSliceFinished(BzSliceTryResult result) { if (!result.sliced) { return; } var addData = (ResultData)result.addData; // add blood Profiler.BeginSample("AddBlood"); AddBlood(result); Profiler.EndSample(); var resultNeg = result.outObjectNeg.GetComponent <CharacterSlicerSampleFast>(); var resultPos = result.outObjectPos.GetComponent <CharacterSlicerSampleFast>(); var lazyActionNeg = result.outObjectNeg.GetComponent <LazyActionRunner>(); var lazyActionPos = result.outObjectPos.GetComponent <LazyActionRunner>(); // convert to ragdoll if (_convertToRagdoll & !IsDead) { Profiler.BeginSample("ConvertToRagdoll"); ConvertToRagdoll(result.outObjectNeg, result.outObjectPos, lazyActionNeg, lazyActionPos); Profiler.EndSample(); } // show elapsed time drawText += addData.stopwatch.ElapsedMilliseconds.ToString() + " - " + gameObject.name + Environment.NewLine; IsDead = true; resultNeg.IsDead = IsDead; resultPos.IsDead = IsDead; --_maxSliceCount; resultNeg._maxSliceCount = _maxSliceCount; resultPos._maxSliceCount = _maxSliceCount; }
private void AddBlood(BzSliceTryResult result) { for (int i = 0; i < result.meshItems.Length; i++) { var meshItem = result.meshItems[i]; if (meshItem == null) { continue; } for (int j = 0; j < meshItem.sliceEdgesNeg.Length; j++) { var meshData = meshItem.sliceEdgesNeg[j].capsData; SetBleedingObjects(meshData, meshItem.rendererNeg); } for (int j = 0; j < meshItem.sliceEdgesPos.Length; j++) { var meshData = meshItem.sliceEdgesPos[j].capsData; SetBleedingObjects(meshData, meshItem.rendererPos); } } }
protected override void OnSliceFinished(BzSliceTryResult result) { }