fix: ping描边改为世界空间水平环,移除X旋转避免视角不可见

This commit is contained in:
yangbear
2026-07-02 16:33:02 +08:00
parent 915898cb24
commit 9bb15b9959
2 changed files with 280 additions and 11 deletions
@@ -40,14 +40,13 @@ public class PingClickHandler : MonoBehaviour
if (_outlineRenderer != null) return;
var ringGo = new GameObject("BlueRing");
ringGo.transform.SetParent(transform, false);
ringGo.transform.localPosition = Vector3.zero;
ringGo.transform.localRotation = Quaternion.Euler(90f, 0, 0);
ringGo.transform.localPosition = new Vector3(0, 0.05f, 0);
_outlineRenderer = ringGo.AddComponent<LineRenderer>();
_outlineRenderer.useWorldSpace = false;
_outlineRenderer.useWorldSpace = true;
_outlineRenderer.loop = true;
_outlineRenderer.startWidth = 0.04f;
_outlineRenderer.endWidth = 0.04f;
_outlineRenderer.startWidth = 0.05f;
_outlineRenderer.endWidth = 0.05f;
_outlineRenderer.material = new Material(Shader.Find("Unlit/Color"));
_outlineRenderer.material.color = new Color(0.2f, 0.5f, 1f);
_outlineRenderer.startColor = new Color(0.2f, 0.5f, 1f);
@@ -56,10 +55,11 @@ public class PingClickHandler : MonoBehaviour
float r = 0.25f;
int segs = 32;
_outlineRenderer.positionCount = segs;
Vector3 center = transform.position + Vector3.up * 0.1f;
for (int i = 0; i < segs; i++)
{
float a = i * 2f * Mathf.PI / segs;
_outlineRenderer.SetPosition(i, new Vector3(Mathf.Cos(a) * r, Mathf.Sin(a) * r, 0));
_outlineRenderer.SetPosition(i, center + new Vector3(Mathf.Cos(a) * r, 0, Mathf.Sin(a) * r));
}
}