// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { Ray ray = cam.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, 100, movementMask)) { motor.MoveToPoint(hit.point); } } if (Input.GetMouseButtonDown(1)) { Ray ray = cam.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, 100)) { interactball interactball = hit.collider.GetComponent <interactball>(); if (interactball != null) { SetFocus(interactball); } } } }
void RemoveFocus() { if (focus != null) { focus.OnDefocused(); } focus = null; motor.StopFollowing(); }
void SetFocus(interactball newFocus) { if (newFocus != focus) { if (focus != null) { focus.OnDefocused(); } focus = newFocus; motor.FollowTarget(newFocus); } newFocus.Onfocused(transform); }
public void FollowTarget(interactball newTarget) { agent.stoppingDistance = newTarget.radius; agent.updateRotation = false; target = newTarget.interactionTransform; }