void Update() { if (state == SavePointStates.OnScreen && (transform.position - targetPosition).magnitude > errorMargin) { state = SavePointStates.FarEnough; } if (!isChild && state == SavePointStates.FarEnough && (transform.position - targetPosition).magnitude < errorMargin) { state = SavePointStates.Judging; foreach (SavePoint childSP in childrenSPs) { childSP.setJudging(); } arrivedAtSavePoint(); } if (state == SavePointStates.Judging && gameSceneController.roomSpeed == 0 && gameSceneController.isCollectingWell()) { innerLight.color = new Color(1f, 1f, 1f); state = SavePointStates.ReadyToActivate; } }