コード例 #1
0
        private void SetupFragment()
        {
            Transform transform = base.get_transform();

            if (this._fragments.get_Count() != transform.get_childCount())
            {
                this._fragments.set_Capacity(transform.get_childCount());
                for (int i = 0; i < transform.get_childCount(); i++)
                {
                    ExplodeChild.Fragment fragment = default(ExplodeChild.Fragment);
                    fragment.transform = transform.GetChild(i);
                    this._fragments.Add(fragment);
                }
            }
            for (int j = 0; j < this._fragments.get_Count(); j++)
            {
                ExplodeChild.Fragment fragment2 = this._fragments.get_Item(j);
                fragment2.initialPosition = fragment2.transform.get_localPosition();
                fragment2.initialRotation = fragment2.transform.get_localRotation();
                Vector3 vector = Quaternion.AngleAxis(Random.Range(-this._explodeDirectionRandomize, this._explodeDirectionRandomize), Random.get_onUnitSphere()) * fragment2.initialPosition.get_normalized();
                if (vector.y < 0f)
                {
                    vector.y *= -1f;
                }
                vector.y                 *= this._upPowerPlus;
                fragment2.velocity        = vector * this._explodePower * Random.Range(0.5f, 1.5f);
                fragment2.angularVelocity = Quaternion.AngleAxis(Random.Range(90f, 180f), Random.get_onUnitSphere());
                this._fragments.set_Item(j, fragment2);
            }
        }
コード例 #2
0
 public void ResetFragment()
 {
     for (int i = 0; i < this._fragments.get_Count(); i++)
     {
         ExplodeChild.Fragment fragment = this._fragments.get_Item(i);
         fragment.transform.set_localPosition(fragment.initialPosition);
         fragment.transform.set_localRotation(fragment.initialRotation);
     }
 }
コード例 #3
0
 public bool LateRun()
 {
     if (!this._isAnimating)
     {
         return(false);
     }
     for (int i = 0; i < this._fragments.get_Count(); i++)
     {
         ExplodeChild.Fragment fragment  = this._fragments.get_Item(i);
         Transform             transform = fragment.transform;
         Vector3    vector     = transform.get_transform().get_localPosition();
         Quaternion quaternion = this._fragments.get_Item(i).transform.get_localRotation();
         vector     += this._fragments.get_Item(i).velocity *Time.get_deltaTime();
         quaternion *= Quaternion.Slerp(Quaternion.get_identity(), this._fragments.get_Item(i).angularVelocity, Time.get_deltaTime() * this._anglarSpeed);
         transform.set_localPosition(vector);
         transform.set_localRotation(quaternion);
         fragment.velocity += Vector3.get_down() * this._gravity * Time.get_deltaTime();
         this._fragments.set_Item(i, fragment);
     }
     return(true);
 }