Пример #1
0
    private void UpdateKnockback()
    {
        float force = mKnockbackForce * (Time.deltaTime / mKnockbackMaxTime);

        Vector3 oldPos = GetPos();

        Vector3 delta = mKnockbackDirection * force;

        delta += oldPos;

        if (mMapManager.CheckInside(delta))
        {
            SetPos(delta.x, delta.y);

            mKnockbackTime += Time.deltaTime;

            if (mKnockbackTime >= mKnockbackMaxTime)
            {
                SetStatus(UNIT_STATUS.US_IDLE);
            }
        }
        else
        {
            SetStatus(UNIT_STATUS.US_IDLE);
        }
    }
Пример #2
0
    //----------------------------------------
    protected override void MoveUnit()
    {
        float speed = Time.deltaTime * mMovingSpeed;

        Vector3 moveDelta = mMoveDirection * speed;

        Vector3 oldPos = GetPos();

        Vector3 pos = oldPos;

        pos += moveDelta;

        if (mMapManager.CheckInside(pos))
        {
            Move(moveDelta.x, moveDelta.y);
        }
    }