public void Set(Visual visual, ref InternalSettings settings) { var background = visual.Background; var handle = visual.Handle; Vector2 center = new Vector2(0.5f, 0.5f); var midAnch = Vector2.zero; var anch = background.anchorMin; midAnch.x = (anch.x + anch.y) / 2f; anch = background.anchorMax; midAnch.y = (anch.x + anch.y) / 2f; anch = center - anch; settings.startPosition = background.anchoredPosition -= anch * visual.Base.rect.size; background.anchorMin = center; background.anchorMax = center; background.pivot = center; handle.anchorMin = center; handle.anchorMax = center; handle.pivot = center; handle.anchoredPosition = Vector2.zero; }
public void Handle(Visual visual, InternalSettings internalSettings, ref InputMeta meta) { if (meta.magnitude > internalSettings.handleRange) { meta.vector = meta.normalized * internalSettings.handleRange; } }
public void Handle(Visual visual, InternalSettings internalSettings, ref InputMeta meta) { if (meta.magnitude > internalSettings.handleRange) { Vector2 difference = meta.normalized * (meta.magnitude - internalSettings.handleRange) * internalSettings.radius; visual.Background.anchoredPosition += difference; } }
public void Handle(Visual visual, InternalSettings settings, Vector2 position) { visual.Background.anchoredPosition = ScreenPointToAnchoredPosition(); Vector2 ScreenPointToAnchoredPosition() { if (RectTransformUtility.ScreenPointToLocalPointInRectangle(visual.Base, position, settings.camera, out Vector2 localPoint)) { Vector2 pivotOffset = visual.Base.pivot * visual.Base.sizeDelta; return(localPoint - (visual.Background.anchorMax * visual.Base.sizeDelta) + pivotOffset); } return(Vector2.zero); } }
public void Handle(Visual visual, InternalSettings settings) { visual.Handle.anchoredPosition = Vector2.zero; }
public void Set(Visual visual, ref InternalSettings settings) { visual.Background.gameObject.SetActive(Value); }
public void Handle(Visual visual, InternalSettings settings, Vector2 position) { visual.Background.gameObject.SetActive(Value); }
public void Handle(Visual visual, InternalSettings settings) { visual.Background.anchoredPosition = settings.startPosition; }