Ejemplo n.º 1
0
        // Slice collider by blade
        void Slice(GameObject targetObject, Vector3[] slicePlane)
        {
            // Check tag
            if (tagFilter != "Untagged" && !targetObject.CompareTag(tagFilter))
            {
                return;
            }

            // Check layer
            if (LayerCheck(targetObject.layer) == false)
            {
                return;
            }

            // Get RayFire script
            RayfireRigid rfScr = targetObject.GetComponent <RayfireRigid>();

            // targetObject.GetComponentInParent<RayfireRigid>();


            // No Rayfire Rigid script
            if (rfScr == null)
            {
                return;
            }

            // No demolition allowed
            if (rfScr.demolitionType == DemolitionType.None)
            {
                return;
            }

            // Object can't be cut
            if (rfScr.limitations.sliceByBlade == false)
            {
                return;
            }

            // Global demolition state check
            if (rfScr.State() == false)
            {
                return;
            }

            // Slice object
            rfScr.AddSlicePlane(slicePlane);

            // Event
            sliceEvent.InvokeLocalEvent(this);
            RFSliceEvent.InvokeGlobalEvent(this);
        }
Ejemplo n.º 2
0
        /// /////////////////////////////////////////////////////////
        /// Demolition
        /// /////////////////////////////////////////////////////////

        // Demolish
        void Demolish(GameObject targetObject)
        {
            // Check tag
            if (tagFilter != "Untagged" && targetObject.tag != tagFilter)
            {
                return;
            }

            // Check layer
            if (LayerCheck(targetObject.layer) == false)
            {
                return;
            }

            // Get RayFire script
            RayfireRigid rfScr = targetObject.GetComponent <RayfireRigid>();

            // No Rayfire Rigid script
            if (rfScr == null)
            {
                return;
            }

            // No demolition allowed
            if (rfScr.demolitionType == DemolitionType.None)
            {
                return;
            }

            // Available for demolition
            if (rfScr.State() == false)
            {
                return;
            }

            // Demolish
            rfScr.Demolish();
        }