Inheritance: MonoBehaviour
示例#1
0
    private void UpdateLinearTrail()
    {
        if (trailRenderer == null)
        {
            if (Slicer2D.Debug.enabled)
            {
                Debug.LogWarning("Slicer2D: Trail Renderer is not attached to the controller");
            }
            return;
        }

        int pointsCount = trailRenderer.GetPositions(trailPositions);

        if (pointsCount < 1)
        {
            return;
        }

        Vector2D pos = new Vector2D(trailPositions[pointsCount - 1]);

        List <Slice2D> results = linearTrail.Update(pos, trailRenderer.time);

        if (addForce)
        {
            foreach (Slice2D id in results)
            {
                AddForce.LinearTrail(id, addForceAmount);
            }
        }
    }
示例#2
0
        private bool LinearSlice(Pair2D slice)
        {
            if (sliceJoints)
            {
                Slicer2D.Controller.Joints.LinearSliceJoints(slice);
            }

            List <Slice2D> results = Slicing.LinearSliceAll(slice, sliceLayer);
            bool           result  = false;

            foreach (Slice2D id in results)
            {
                if (id.GetGameObjects().Count > 0)
                {
                    result = true;
                }

                eventHandler.Perform(id);
            }

            if (addForce == true)
            {
                foreach (Slice2D id in results)
                {
                    AddForce.LinearSlice(id, addForceAmount);
                }
            }

            return(result);
        }
示例#3
0
    private bool ComplexSlice(List <Vector2D> slice)
    {
        if (sliceJoints)
        {
            ComplexSliceJoints(slice);
        }

        List <Slice2D> results = Slicer2D.ComplexSliceAll(slice, sliceLayer);
        bool           result  = false;

        foreach (Slice2D id in results)
        {
            if (id.gameObjects.Count > 0)
            {
                result = true;
            }

            if (sliceResultEvent != null)
            {
                sliceResultEvent(id);
            }
        }

        if (addForce == true)
        {
            foreach (Slice2D id in results)
            {
                AddForce.ComplexSlice(id, addForceAmount);
            }
        }
        return(result);
    }
        public void Update()
        {
            for (int id = 0; id < trailRenderer.Length; id++)
            {
                if (trailRenderer[id] == null)
                {
                    if (id == 0)
                    {
                        Debug.LogWarning("Slicer2D: Trail Renderer is not attached to the controller");
                    }
                    return;
                }

                SetTrailPosition(trailRenderer[id], id);

                int pointsCount = trailRenderer[id].GetPositions(trailPositions[id]);
                if (pointsCount < 1)
                {
                    return;
                }

                Vector2D pos = new Vector2D(trailPositions[id][pointsCount - 1]);

                List <Slice2D> results = linearTrail[id].Update(pos, trailRenderer[id].time, sliceLayer);

                if (addForce)
                {
                    foreach (Slice2D p in results)
                    {
                        AddForce.LinearTrail(p, addForceAmount);
                    }
                }
            }
        }
示例#5
0
        public Node <INode> GetNode(string nodeName)
        {
            switch (nodeName)
            {
            case AddForce.NAME:
                INode nodeAddForce = new AddForce() as INode;
                return(new Node <INode> (nodeAddForce));

            case AddTorque.NAME:
                INode nodeAddTorque = new AddTorque() as INode;
                return(new Node <INode> (nodeAddTorque));

            case RigidBody.NAME:
                INode nodeRigidBody = new RigidBody() as INode;
                return(new Node <INode> (nodeRigidBody));

            case Velocity.NAME:
                INode nodeVelocity = new Velocity() as INode;
                return(new Node <INode> (nodeVelocity));

            case CollisionEnter.NAME:
                INode nodeCollisionEnter = new CollisionEnter() as INode;
                return(new Node <INode> (nodeCollisionEnter));

            case CollisionStay.NAME:
                INode nodeCollisionStay = new CollisionStay() as INode;
                return(new Node <INode> (nodeCollisionStay));

            case CollisionExit.NAME:
                INode nodeCollisionExit = new CollisionExit() as INode;
                return(new Node <INode> (nodeCollisionExit));

            case FixedUpdate.NAME:
                INode nodeFixedUpdate = new FixedUpdate() as INode;
                return(new Node <INode> (nodeFixedUpdate));

            case AddImpulseForce.NAME:
                INode nodeImpulse = new AddImpulseForce() as INode;
                return(new Node <INode> (nodeImpulse));

            case Character.NAME:
                var nodeCharacter = new Character() as INode;
                return(new Node <INode> (nodeCharacter));

            case CharacterForward.NAME:
                var nodeCharacterForward = new CharacterForward() as INode;
                return(new Node <INode> (nodeCharacterForward));

            case CameraRaycast.NAME:
                var nodeCameraRayCast = new CameraRaycast() as INode;
                return(new Node <INode> (nodeCameraRayCast));

            case AddImpulseTorque.NAME:
                var nodeAddImpulseTorque = new AddImpulseTorque() as INode;
                return(new Node <INode>(nodeAddImpulseTorque));

            default:
                return(null);
            }
        }
示例#6
0
 void OnTriggerEnter(Collider col)
 {
     if (col.gameObject.CompareTag("Rocket"))
     {
         AddForce addForceComponent = col.GetComponent <AddForce>();
         if (addForceComponent)
         {
             Vector3 cForce = addForceComponent.force;
             cForce += windDirection;
             addForceComponent.force = cForce;
         }
     }
 }
示例#7
0
        void Explode(Vector2D pos)
        {
            List <Slice2D> results = Slicing.ExplodeInPointAll(pos, sliceLayer);

            foreach (Slice2D id in results)
            {
                eventHandler.Perform(id);
            }

            if (addForce == true)
            {
                foreach (Slice2D id in results)
                {
                    AddForce.ExplodeInPoint(id, addForceAmount, pos);
                }
            }
        }
示例#8
0
    private void ExplodeInPoint(Vector2D pos)
    {
        List <Slice2D> results = Slicer2D.ExplodeInPointAll(pos, sliceLayer);

        foreach (Slice2D id in results)
        {
            if (sliceResultEvent != null)
            {
                sliceResultEvent(id);
            }
        }

        if (addForce == true)
        {
            foreach (Slice2D id in results)
            {
                AddForce.ExplodeInPoint(id, addForceAmount, pos);
            }
        }
    }
示例#9
0
 // Start is called before the first frame update
 private void Awake()
 {
     Instance = this;
 }
示例#10
0
 // Use this for initialization
 void Start()
 {
     Time.timeScale = 1;
     add            = basket.GetComponent <AddForce>();
 }