Exemplo n.º 1
0
 private void CreateInstance()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
Exemplo n.º 2
0
 public static void ShowLaser()
 {
     if (instance == null)
     {
         return;
     }
     instance.hideAll          = false;
     instance.currentLaserType = LaserType.Straight;
     LaserSelector.ClearTarget();
 }
Exemplo n.º 3
0
    Vector3 GetPointOnPlane()
    {
        Ray   reticle = LaserSelector.GetReticleRay();
        float rayDistance;

        if (crankPlane.Raycast(reticle, out rayDistance))
        {
            return(reticle.GetPoint(rayDistance));
        }
        Debug.Log("No point on plane");
        return(Vector3.zero);
    }
Exemplo n.º 4
0
 public static void SetTarget(Transform newTarget)
 {
     if (instance == null)
     {
         return;
     }
     if (!newTarget)
     {
         LaserSelector.ClearTarget();
         return;
     }
     instance.currentLaserType      = LaserType.Curved;
     instance.target                = newTarget;
     instance.straightLaser.enabled = false;
     instance.laserPath.enabled     = true;
     instance.reticle.GetComponent <Renderer>().enabled = false;
 }
Exemplo n.º 5
0
    void Update()
    {
        Vector3 directionToHandle = (transform.position - (Camera.main.transform.position - (Vector3.up * 0.5f))).normalized;
        float   offsetFromUp      = Vector3.Dot(directionToHandle, Vector3.up);

        float distanceFromController = Mathf.Lerp(maxDistanceFromController, minDistanceFromController, offsetFromUp);


        if (isDragging)
        {
            if (seedFunnel.IsHovered)
            {
                Vector3 funnelPos = seedFunnel.transform.position + new Vector3(0.0f, 0.25f, 0.0f);
                transform.position = Vector3.Lerp(transform.position, funnelPos, Time.deltaTime * 4);
            }
            else
            {
                Vector3 dragPoint = LaserSelector.GetReticleRay().GetPoint(distanceFromController);
                transform.position = Vector3.Lerp(transform.position, dragPoint, Time.deltaTime * 3);
            }
            seedDrift = transform.position - lastPosition;

            lastPosition = transform.position;
        }
        else
        {
            if (seedGrabbed)
            {
                Vector3 correctPos = transform.position;
                correctPos.y = homeHeight;

                transform.position = Vector3.Lerp(transform.position, correctPos, Time.deltaTime * 0.25f);

                transform.Translate(seedDrift);

                seedDrift *= 0.965f;
            }
        }
    }
Exemplo n.º 6
0
    void Update()
    {
        if (hoverTimer >= 0.0f && hoverTimer <= 1.0f)
        {
            hoverTimer += Time.deltaTime / (isHovered ? hoverDuration * 0.5f : -hoverDuration);
            float amount = Mathf.SmoothStep(0, 1, Mathf.Clamp01(hoverTimer));
            funnelMat.SetColor("_EmissionColor", Color.Lerp(Color.black, Color.white, amount));
        }

        Vector3 reticleDir = LaserSelector.GetReticleRay().direction;
        Vector3 funnelDir  = (transform.position - Camera.main.transform.position).normalized;

        funnelDistance = Vector3.Dot(reticleDir, funnelDir);

        if (funnelDistance > 0.95f && !IsHovered)
        {
            IsHovered = true;
        }
        if (funnelDistance < 0.95f && IsHovered)
        {
            IsHovered = false;
        }
    }