void Sliceable_Sliced(object sender, NobleMuffins.TurboSlicer.SliceEventArgs e)
        {
            var centers = new Vector3[e.Parts.Length];

            for (int i = 0; i < e.Parts.Length; i++)
            {
                centers [i] = e.Parts [i].GetComponent <Collider> ().bounds.center;
            }

            var center = Vector3.zero;

            for (int i = 0; i < centers.Length; i++)
            {
                center += centers [i];
            }
            center /= (float)centers.Length;

            for (int i = 0; i < e.Parts.Length; i++)
            {
                var go = e.Parts [i];
                var rb = go.GetComponent <Rigidbody> ();
                if (rb != null)
                {
                    var v = centers [i] - center;
                    v.Normalize();
                    v *= burstForce;
                    rb.AddForce(v);
                }
            }
        }
 void Sliceable_Sliced(object sender, NobleMuffins.TurboSlicer.SliceEventArgs e)
 {
     //When a slice occurs, this method will be called. This for loop will iterate through each part of the slice result.
     //As of Turbo Slicer 2.0, there should be exactly two slice results but we won't hard-code that because this might
     //change in the future.
     for (int i = 0; i < e.Parts.Length; i++)
     {
         var go = e.Parts[i];
         Debug.LogFormat(this, "Object '{0}' is the result of a slice!", go.name);
     }
 }
Exemplo n.º 3
0
        void Sliceable_Sliced(object sender, NobleMuffins.TurboSlicer.SliceEventArgs e)
        {
            if (clip != null)
            {
                var go = new GameObject();

                go.transform.position = transform.position;

                var source = go.AddComponent <AudioSource> ();

                source.clip = clip;
                source.Play();

                GameObject.Destroy(go, clip.length);
            }
        }