public static void AdjustRadiusAxisLabelPos(ChartText txt, Vector3 pos, Vector3 cenPos, float txtHig, Vector3 offset) { var txtWidth = txt.GetPreferredWidth(); var sizeDelta = new Vector2(txtWidth, txt.GetPreferredHeight()); txt.SetSizeDelta(sizeDelta); var diff = pos.y - cenPos.y; if (diff > 20f) //left { pos = new Vector3(pos.x - txtWidth / 2, pos.y); } else if (diff < -20f) //right { pos = new Vector3(pos.x + txtWidth / 2, pos.y); } else { float y = pos.y > cenPos.y ? pos.y + txtHig / 2 : pos.y - txtHig / 2; pos = new Vector3(pos.x, y); } txt.SetLocalPosition(pos); }