Example #1
0
 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);
        }
Example #5
0
        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);
        }
Example #8
0
        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;
        }
Example #9
0
        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)
 {
 }