Пример #1
0
        public void Initialize(IProjectileCannon owner, int frameId, int subFrameId, Vector3 localVelocity, RespondTo terminateOn, RespondTo damageOn, float timeshift = 0)
        {
            this.owner = owner;

            // Convert velocity from local to global
            this.velocity    = transform.TransformDirection(localVelocity);
            this.terminateOn = terminateOn;
            this.damageOn    = damageOn;
            this.frameId     = frameId;
            this.subFrameId  = subFrameId;

            if (timeshift != 0)
            {
                LagCompensate(timeshift);
            }
            else
            {
                snapPos = transform.position;
            }

            if (useRbForces)
            {
                //rb.position = transform.position;
                rb.MovePosition(snapPos);
                rb.velocity = this.velocity;
            }
            /// TODO: NOT TESTED
            else if (rb2d)
            {
                //rb2d.position = transform.position;
                rb2d.MovePosition(snapPos);
                rb2d.velocity = this.velocity;
            }
            else
            {
                transform.position = snapPos;
                targPos            = snapPos + velocity * Time.fixedDeltaTime;
                transform.position = snapPos;
            }

            localContactTrigger.Proxy = owner.ContactTrigger;
        }
Пример #2
0
        public void Initialize(IProjectileLauncher owner, int frameId, int subFrameId, Vector3 velocity, RespondTo terminateOn, RespondTo damageOn)
        {
            this.owner       = owner;
            this.velocity    = velocity;
            this.terminateOn = terminateOn;
            this.damageOn    = damageOn;
            this.frameId     = frameId;
            this.subFrameId  = subFrameId;

            if (rb)
            {
                rb.velocity = rb.rotation * velocity;
            }
            /// TODO: NOT TESTED
            else if (rb2d)
            {
                rb2d.velocity = rb2d.transform.TransformVector(velocity);
            }

            snap = transform.position;
            targ = transform.position;

            localContactTrigger.Proxy = owner.ContactTrigger;
        }