protected void AttachPointerListener(PointerElement pointerElement, Action <bool> func) { UnityAction <bool> internalAction = (val) => { func(val); }; pointerElement.OnPointerChanged.RemoveAllListeners(); pointerElement.OnPointerChanged.AddListener(internalAction); PointerHandlers[pointerElement.gameObject] = internalAction; }
protected void AddPointerListener(PointerElement pointerElement, Action <bool, Vector2> func) { UnityAction <bool, Vector2> internalAction = (state, pos) => { func(state, pos); }; pointerElement.OnPointerChanged.RemoveAllListeners(); pointerElement.OnPointerChanged.AddListener(internalAction); PointerHandlers[pointerElement.gameObject] = internalAction; }
protected virtual void SetUpElements() { validOriginContainer = new GameObject("validOriginContainer"); validOriginMesh = new GameObject("validOriginMesh"); validOriginMesh.transform.SetParent(validOriginContainer.transform); invalidOriginContainer = new GameObject("invalidOriginContainer"); invalidOriginMesh = new GameObject("invalidOriginMesh"); invalidOriginMesh.transform.SetParent(invalidOriginContainer.transform); validSegmentContainer = new GameObject("validSegmentContainer"); validSegmentMesh = new GameObject("validSegmentMesh"); validSegmentMesh.transform.SetParent(validSegmentContainer.transform); invalidSegmentContainer = new GameObject("invalidSegmentContainer"); invalidSegmentMesh = new GameObject("invalidSegmentMesh"); invalidSegmentMesh.transform.SetParent(invalidSegmentContainer.transform); validDestinationContainer = new GameObject("validDestinationContainer"); validDestinationMesh = new GameObject("validDestinationMesh"); validDestinationMesh.transform.SetParent(validDestinationContainer.transform); invalidDestinationContainer = new GameObject("invalidDestinationContainer"); invalidDestinationMesh = new GameObject("invalidDestinationMesh"); invalidDestinationMesh.transform.SetParent(invalidDestinationContainer.transform); PointerElement origin = containingObject.AddComponent <PointerElement>(); PointerElement segment = containingObject.AddComponent <PointerElement>(); PointerElement destination = containingObject.AddComponent <PointerElement>(); origin.ValidElementContainer = validOriginContainer; origin.ValidMeshContainer = validOriginMesh; origin.InvalidElementContainer = invalidOriginContainer; origin.InvalidMeshContainer = invalidOriginMesh; segment.ValidElementContainer = validSegmentContainer; segment.ValidMeshContainer = validSegmentMesh; segment.InvalidElementContainer = invalidSegmentContainer; segment.InvalidMeshContainer = invalidSegmentMesh; destination.ValidElementContainer = validDestinationContainer; destination.ValidMeshContainer = validDestinationMesh; destination.InvalidElementContainer = invalidDestinationContainer; destination.InvalidMeshContainer = invalidDestinationMesh; subject.Origin = origin; subject.RepeatedSegment = segment; subject.Destination = destination; containingObject.SetActive(true); }