コード例 #1
0
 public ExploderParams(ExploderObject exploder)
 {
     Position                    = ExploderUtils.GetCentroid(exploder.gameObject);
     DontUseTag                  = exploder.DontUseTag;
     Radius                      = exploder.Radius;
     UseCubeRadius               = exploder.UseCubeRadius;
     CubeRadius                  = exploder.CubeRadius;
     ForceVector                 = exploder.ForceVector;
     UseForceVector              = exploder.UseForceVector;
     Force                       = exploder.Force;
     FrameBudget                 = exploder.FrameBudget;
     TargetFragments             = exploder.TargetFragments;
     ExplodeSelf                 = exploder.ExplodeSelf;
     HideSelf                    = exploder.HideSelf;
     ThreadOptions               = exploder.ThreadOption;
     DestroyOriginalObject       = exploder.DestroyOriginalObject;
     SplitMeshIslands            = exploder.SplitMeshIslands;
     FragmentOptions             = exploder.FragmentOptions.Clone();
     FragmentDeactivation        = exploder.FragmentDeactivation.Clone();
     FragmentSFX                 = exploder.FragmentSFX.Clone();
     Use2DCollision              = exploder.Use2DCollision;
     FragmentPoolSize            = exploder.FragmentPoolSize;
     DisableRadiusScan           = exploder.DisableRadiusScan;
     UniformFragmentDistribution = exploder.UniformFragmentDistribution;
     DisableTriangulation        = exploder.DisableTriangulation;
     ExploderGameObject          = exploder.gameObject;
     CuttingStyle                = exploder.CuttingStyle;
 }
コード例 #2
0
 public ExploderParams(ExploderObject exploder)
 {
     this.Position                    = ExploderUtils.GetCentroid(((Component)exploder).get_gameObject());
     this.DontUseTag                  = exploder.DontUseTag;
     this.Radius                      = exploder.Radius;
     this.UseCubeRadius               = exploder.UseCubeRadius;
     this.CubeRadius                  = exploder.CubeRadius;
     this.ForceVector                 = exploder.ForceVector;
     this.UseForceVector              = exploder.UseForceVector;
     this.Force                       = exploder.Force;
     this.FrameBudget                 = exploder.FrameBudget;
     this.TargetFragments             = exploder.TargetFragments;
     this.ExplodeSelf                 = exploder.ExplodeSelf;
     this.HideSelf                    = exploder.HideSelf;
     this.ThreadOptions               = exploder.ThreadOption;
     this.DestroyOriginalObject       = exploder.DestroyOriginalObject;
     this.SplitMeshIslands            = exploder.SplitMeshIslands;
     this.FragmentOptions             = exploder.FragmentOptions.Clone();
     this.FragmentDeactivation        = exploder.FragmentDeactivation.Clone();
     this.FragmentSFX                 = exploder.FragmentSFX.Clone();
     this.Use2DCollision              = exploder.Use2DCollision;
     this.FragmentPoolSize            = exploder.FragmentPoolSize;
     this.DisableRadiusScan           = exploder.DisableRadiusScan;
     this.UniformFragmentDistribution = exploder.UniformFragmentDistribution;
     this.DisableTriangulation        = exploder.DisableTriangulation;
     this.ExploderGameObject          = ((Component)exploder).get_gameObject();
     this.CuttingStyle                = exploder.CuttingStyle;
 }
コード例 #3
0
ファイル: FragmentPool.cs プロジェクト: MakiMakiSa/TestRepo
        /// <summary>
        /// set options for fragment rigid bodies and layer
        /// </summary>
        public void SetFragmentPhysicsOptions(FragmentOption options, bool physics2d)
        {
            if (pool != null)
            {
                var constrains = RigidbodyConstraints.None;

                if (options.FreezePositionX)
                {
                    constrains |= RigidbodyConstraints.FreezePositionX;
                }
                if (options.FreezePositionY)
                {
                    constrains |= RigidbodyConstraints.FreezePositionY;
                }
                if (options.FreezePositionZ)
                {
                    constrains |= RigidbodyConstraints.FreezePositionZ;
                }
                if (options.FreezeRotationX)
                {
                    constrains |= RigidbodyConstraints.FreezeRotationX;
                }
                if (options.FreezeRotationY)
                {
                    constrains |= RigidbodyConstraints.FreezeRotationY;
                }
                if (options.FreezeRotationZ)
                {
                    constrains |= RigidbodyConstraints.FreezeRotationZ;
                }

                foreach (var fragment in pool)
                {
                    if (fragment.gameObject)
                    {
                        fragment.gameObject.layer = LayerMask.NameToLayer(options.Layer);
                    }

                    fragment.SetConstraints(constrains);
                    fragment.DisableColliders(options.DisableColliders, meshColliders, physics2d);
                }
            }
        }
コード例 #4
0
        public void SetFragmentPhysicsOptions(FragmentOption options, bool physics2d)
        {
            if (this.pool == null)
            {
                return;
            }
            RigidbodyConstraints constraints = (RigidbodyConstraints)0;

            if (options.FreezePositionX)
            {
                constraints = (RigidbodyConstraints)(constraints | 2);
            }
            if (options.FreezePositionY)
            {
                constraints = (RigidbodyConstraints)(constraints | 4);
            }
            if (options.FreezePositionZ)
            {
                constraints = (RigidbodyConstraints)(constraints | 8);
            }
            if (options.FreezeRotationX)
            {
                constraints = (RigidbodyConstraints)(constraints | 16);
            }
            if (options.FreezeRotationY)
            {
                constraints = (RigidbodyConstraints)(constraints | 32);
            }
            if (options.FreezeRotationZ)
            {
                constraints = (RigidbodyConstraints)(constraints | 64);
            }
            foreach (Fragment fragment in this.pool)
            {
                if (Object.op_Implicit((Object)((Component)fragment).get_gameObject()))
                {
                    ((Component)fragment).get_gameObject().set_layer(LayerMask.NameToLayer(options.Layer));
                }
                fragment.SetConstraints(constraints);
                fragment.DisableColliders(options.DisableColliders, this.meshColliders, physics2d);
            }
        }