Beispiel #1
0
    private void UpdateMovement()
    {
        float rotation    = (Input.GetAxis("Mouse X") + Input.GetAxis("Horizontal")) * speed * Time.deltaTime * 10;
        float translation = (Input.GetAxis("Mouse Y") + Input.GetAxis("Vertical")) * Time.deltaTime * 10;

        StickModel.RotateAround(target.position, target.forward, rotation);

        var nextTranslation = translation;

        if (totalTranslation + translation >= 0)
        {
            nextTranslation = totalTranslation * (-1);
        }
        else if (totalTranslation + translation <= maxTranslation)
        {
            nextTranslation = maxTranslation - totalTranslation;
        }

        totalTranslation += nextTranslation;
        StickModel.Translate(0, 0, nextTranslation);

        if (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0))
        {
            shootSpeed = totalTranslation * (-1) * 10;
            mode       = StickModes.ShootAnimation;
        }
    }
Beispiel #2
0
    private void Shoot()
    {
        var relativePosition = new Vector3(StickModel.position.x, target.transform.position.y, StickModel.position.z);
        var shootForce       = (target.transform.position - relativePosition).normalized * (shootSpeed) * 50 * target.GetComponent <Rigidbody>().mass;

        StickModel.gameObject.SetActive(false);
        target.GetComponent <Rigidbody>().AddForce(shootForce);
        mode = StickModes.Shooted;
    }
Beispiel #3
0
    private void AnimateShoot()
    {
        float translation     = speed * Time.deltaTime;
        var   nextTranslation = translation;

        if (totalTranslation + translation >= 0)
        {
            nextTranslation = totalTranslation * (-1);
        }

        totalTranslation += nextTranslation;
        StickModel.Translate(0, 0, nextTranslation);

        if (totalTranslation == 0f)
        {
            mode = StickModes.Shoot;
        }
    }
Beispiel #4
0
 public void ShowStick()
 {
     transform.position = target.transform.position;
     StickModel.gameObject.SetActive(true);
     mode = StickModes.Configuration;
 }