// Update is called once per frame void Update() { if (circle && point) { Vector3 farPoint = TelescopeUtils.FarthestPointOnCircle(circle.Center, circle.Normal, circle.radius, point.position); transform.position = farPoint; } }
// Update is called once per frame void Update() { Vector3 center = TelescopeUtils.Circumcenter(object1.position, object2.position, object3.position); transform.position = center; }
// Update is called once per frame void Update() { craneTarget.position = Vector3.Lerp(calibrationPos.position, currentTarget.position + targetOffset, interp); switch (currentMode) { case CraneMode.Extending: if (delay < 1) { delay += Time.deltaTime; } else { interp = Mathf.Clamp01(interp + Time.deltaTime); } if (interp >= 1) { currentMode = CraneMode.Holding; } break; case CraneMode.Retracting: interp = Mathf.Clamp01(interp - Time.deltaTime); if (interp <= 0) { currentMode = CraneMode.Holding; } break; case CraneMode.Holding: default: break; } Vector3 clawUp = claw.transform.up; Vector3 clawForward = claw.transform.forward; Vector3 worldUpImage = Vector3.up - Vector3.Dot(Vector3.up, clawForward) * clawForward; float angle = TelescopeUtils.AngleBetween(clawUp, worldUpImage.normalized, claw.transform.forward); claw.transform.rotation = Quaternion.AngleAxis(Mathf.Min(angle, 90f * Time.deltaTime), claw.transform.forward) * claw.transform.rotation; if (Input.GetKeyDown("=") && targetIndex < targets.Count && currentMode == CraneMode.Holding) { Debug.Log("extending"); FetchTarget(targets[targetIndex]); currentTargetObject = targetObjects[targetIndex]; targetIndex++; } if (Input.GetKeyDown("-") && currentMode == CraneMode.Holding) { Debug.Log("retracting"); RetrieveTarget(); } if (Input.GetKeyDown("0") && currentMode == CraneMode.Holding) { Debug.Log("Moving to bin"); DepositTarget(); } if (Input.GetKeyDown("1")) { bool nowOpen = claw.ToggleClose(); if (!nowOpen) { currentTargetObject.parent = claw.transform; } else { currentTargetObject.parent = null; currentTargetObject.GetComponent <Rigidbody>().isKinematic = false; } } }