public void ApplyServerTechnique(Technique newTechnique) { technique = newTechnique; foreach (var x in new TechniqueServerController[] { PINPinTechnique, PatternPinTechnique, Pattern3DPinTechnique }) { x.gameObject.SetActive(false); } TechniqueServerController controller; switch (technique) { case Technique.PIN: controller = PINPinTechnique; break; case Technique.Pattern: controller = PatternPinTechnique; break; case Technique.Pattern3D: controller = Pattern3DPinTechnique; break; default: throw new InvalidOperationException(); } SetCurrentPin(currentPinTested); SetCurrentPinTrial(currentTrialForPin); controller.gameObject.SetActive(true); techniqueServerPointer.Controller = controller; // For instrumentation _controller = controller; _controller.OnEnteredNumbersChanged += x => DigitEntered(); }
void PrepControllers() { if (isLocalPlayer) { clientController = GameObject.Find("TechniqueClientPointer").GetComponent <TechniqueClientPointer>().Controller; } else { serverController = GameObject.Find("TechniqueServerPointer").GetComponent <TechniqueServerPointer>().Controller; serverController.OnEnteredNumbersChanged += XEnteredNumbersChanged; serverController.OnCursorPositionChanged += XCursorPositionChanged; serverController.OnCursorDepthChanged += XCursorDepthChanged; } }