Exemplo n.º 1
0
    private void Awake()
    {
        _charController = GetComponent <CharacterController>();
        _audioSource    = GetComponent <AudioSource>();

        if (!_charController)
        {
            Debug.LogError("Failed to get character controller in TankMovement instance on " + gameObject.name.ToString() + ", creating one now.");
            _charController = gameObject.AddComponent <CharacterController>();
        }

        if (!_audioSource)
        {
            Debug.LogError("Failed to get AudioSource in TankMovement instance on " + gameObject.name.ToString() + ", creating one now.");
            _audioSource = gameObject.AddComponent <AudioSource>();
        }

        if (!boostSound)
        {
            Debug.LogWarning("No Boost Sound provided for TankMovement!");
        }

        isBoosting        = false;
        isMoving          = false;
        tankSpeed         = 2;
        rotationSpeed     = 1;
        boostAmount       = 4;
        _tankDir          = TANK_DIR.NONE;
        OnTankBoostBegin += InvokeBoostSound;
        OnTankBoostEnd   += EndBoostSound;
    }
Exemplo n.º 2
0
    void MoveTank(TANK_DIR dir)
    {
        switch (dir)
        {
        case TANK_DIR.FORWARD: _charController.SimpleMove(transform.forward * tankSpeed);
            _tankDir = TANK_DIR.FORWARD;
            break;

        case TANK_DIR.BACK: _charController.SimpleMove((transform.forward * -1) * tankSpeed);
            _tankDir = TANK_DIR.BACK;
            break;

        case TANK_DIR.ROTATE_LEFT: transform.Rotate(Vector3.down * rotationSpeed);
            _tankDir = TANK_DIR.ROTATE_LEFT;
            break;

        case TANK_DIR.ROTATE_RIGHT: transform.Rotate(Vector3.up * rotationSpeed);
            _tankDir = TANK_DIR.ROTATE_RIGHT;
            break;

        default: break;
        }
    }