private void CreateInstance() { if (instance == null) { instance = this; } }
public static void ShowLaser() { if (instance == null) { return; } instance.hideAll = false; instance.currentLaserType = LaserType.Straight; LaserSelector.ClearTarget(); }
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); }
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; }
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; } } }
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; } }