Example #1
0
        protected override void MoveUpdate()
        {
            if (Vector2.SqrMagnitude(moveUnit) > UnityExtensions.ThresholdPosition)
            {
                if (Vector2.SqrMagnitude(targetPosition - (Vector2)transform.position) > UnityExtensions.ThresholdPosition)
                {
                    bezierTime += Time.deltaTime / Vector2.Distance(startPosition, targetPosition) * Config.Speed;
                    if (bezierTime > 1)
                    {
                        bezierTime = 0;
                    }
                    transform.position = BezierUtils.Bezier2(startPosition, BezierUtils.ControlPoint(startPosition, targetPosition), targetPosition, bezierTime);

                    //linear moving. can be used for testing
                    //                    transform.position = new Vector2(transform.position.x + moveUnit.x * Time.deltaTime,
                    //                        transform.position.y + moveUnit.y * Time.deltaTime);
                    transform.Rotate(Vector3.forward, Config.RotateParameter * Time.deltaTime * 100);
                }
                else
                {
                    // todo при любом кидании уничтожается - плохо
                    Destroy();
                }
            }
        }