fix: GetComponentsInChildren(true)确保深层子模型隐藏+SphereCollider防点击无效

This commit is contained in:
yangbear
2026-07-03 14:44:28 +08:00
parent 0e35ff22c8
commit dee680a458
2 changed files with 10 additions and 6 deletions
@@ -14,10 +14,12 @@ public class ChanraoTuibuHandler : MonoBehaviour
{
_meshRenderer = GetComponent<MeshRenderer>();
if (_meshRenderer == null) _meshRenderer = GetComponentInChildren<MeshRenderer>();
if (_meshRenderer != null) _meshRenderer.enabled = false;
// 隐藏所有子级 Renderer(确保模型不可见)
var allRends = GetComponentsInChildren<Renderer>();
// 隐藏所有子级 Renderer(包括 inactive 子级,确保模型不可见)
var allRends = GetComponentsInChildren<Renderer>(true);
foreach (var r in allRends) r.enabled = false;
// 确保有大号可点击 collider
var col = GetComponent<Collider>();
if (col == null) { var sc = gameObject.AddComponent<SphereCollider>(); sc.radius = 0.5f; }
CreateBlueOutline();
StopAllCoroutines();
StartCoroutine(BlinkOutline());
@@ -29,10 +29,12 @@ public class PingClickHandler : MonoBehaviour
{
_meshRenderer = GetComponent<MeshRenderer>();
if (_meshRenderer == null) _meshRenderer = GetComponentInChildren<MeshRenderer>();
if (_meshRenderer != null) _meshRenderer.enabled = false;
// 隐藏所有子级 Renderer(确保模型不可见)
var allRends = GetComponentsInChildren<Renderer>();
// 隐藏所有子级 Renderer(包括 inactive 子级)
var allRends = GetComponentsInChildren<Renderer>(true);
foreach (var r in allRends) r.enabled = false;
// 确保有大号可点击 collider
var col = GetComponent<Collider>();
if (col == null) { var sc = gameObject.AddComponent<SphereCollider>(); sc.radius = 0.5f; }
CreateBlueOutline();
_clickedOnce = false;
StopAllCoroutines();