public Vector3 GetFixedPos(RectTransform circleRect = null, CircleFixType fixType = CircleFixType.FixByHeight, float?radius = null) { if (relatee == null) { SetRelateeRect(circleRect); } Vector3 rPos = circleRect.InverseTransformPoint(transform.position); switch (fixType) { case CircleFixType.FixByHeight: rPos = FixPosByHeight(rPos); break; case CircleFixType.FixByWidth: rPos = FixPosByWidth(rPos); break; case CircleFixType.FixByRadius: rPos = FixPosByRadius(rPos, radius); break; } rPos = circleRect.TransformPoint(rPos); rPos = transform.parent.InverseTransformPoint(rPos); return(rPos); }
RectTransform relatee; //Circle RectTransform public void FixPos(RectTransform circleRect = null, CircleFixType fixType = CircleFixType.FixByHeight, float?radius = null) { transform.localPosition = GetFixedPos(circleRect, fixType, radius); }