コード例 #1
0
    private void Update()
    {
        if (aiBrain.targetPosition != Vector3.zero && aiBrain.CanShoot)
        {
            Vector3 velocity =
                TrajectoryHelper.CalculateVelocity(aiBrain.targetPosition, transform.position, shootTime);

            Shoot(velocity);
            aiBrain.targetPosition = Vector3.zero;
        }
    }
コード例 #2
0
    private Vector3 LaunchBall()
    {
        Vector3    Velocity;
        RaycastHit hit;
        Ray        rayToTarget = cam.ScreenPointToRay(Input.mousePosition);
        bool       isHit       = Physics.Raycast(rayToTarget, out hit, shootRange, shootLayer);

        if (isHit)
        {
            cursor.transform.position = hit.point;
            Velocity = TrajectoryHelper.CalculateVelocity(hit.point, transform.position, shootTime);
        }
        else
        {
            Vector3 raycastLastPoint = transform.position + rayToTarget.direction * shootRange;
            Velocity = TrajectoryHelper.CalculateVelocity(raycastLastPoint, transform.position, shootTime);
        }

        cursor.SetActive(isHit);

        Visualize(Velocity);

        return(Velocity);
    }