Example #1
0
    public override TaskStatus OnUpdate()
    {
        TakeShot.ShootData shootData = new TakeShot.ShootData();
        shootData.center   = true;
        shootData.position = Vector3.zero;
        shootData.force    = Vector3.zero;

        shooter.Fire(interactable, shootData);

        return(TaskStatus.Success);
    }
    void Update()
    {
        Ray        ray = _camera.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit, promptDistance, promptLayers))
        {
            var _object = hit.collider.gameObject;
            SetInteracting(_object);
        }
        else
        {
            SetDisinteracting();
        }

        if (Input.GetButtonDown("Pick"))
        {
            if (Physics.Raycast(ray, out hit, collectDistance, collectLayers))
            {
                var interactable = hit.collider.gameObject.GetComponent <Interactable>();
                if (interactable)
                {
                    holder.Collect(interactable);
                }
            }
            // else holder.Drop();
        }

        if (Input.GetButtonDown("Fire1") && Physics.Raycast(ray, out hit))
        {
            var interactable = hit.collider.gameObject.GetComponent <Interactable>();

            var shootData = new TakeShot.ShootData();
            shootData.center   = false;
            shootData.position = hit.point;
            shootData.force    = Vector3.zero;

            shoot.Fire(interactable, shootData);
        }
    }