This commit is contained in:
2026-08-19 20:01:10 +08:00
parent dac32abdc4
commit 65682d5056
206 changed files with 1003 additions and 15612 deletions
@@ -27,6 +27,32 @@ public class BullitMove : MonoBehaviour
public float distanceForMaxTurn = 1f; // 在此距离内达到最大转向速度
float hitDistance = 2f; // 命中判定距离
// ----------------------------------------------------------------
// ⭐ 渲染层级:sortingOrder 优先于 z 深度排序,
// 2D 鱼/飞机设置了 sortingOrder 后会把默认 0 的子弹压在下面,
// 所以子弹需要显式设置更高的 sortingOrder 保证显示在飞机和鱼的上方
// ----------------------------------------------------------------
[Header("渲染层级")]
[Tooltip("子弹sortingOrder层级值,需大于场上鱼/飞机的最大层级,保证子弹显示在最上层")]
public int sortOrder = 100;
/// <summary>子弹渲染器缓存(设置sortingOrder用,Awake 后只取一次)</summary>
private Renderer[] _cachedRenderers;
/// <summary>应用sortingOrder到子弹所有渲染器(多渲染器依次 +i 递增,保持内部遮挡关系)</summary>
private void ApplySortOrder()
{
if (_cachedRenderers == null)
_cachedRenderers = GetComponentsInChildren<Renderer>(true);
for (int i = 0; i < _cachedRenderers.Length; i++)
{
var r = _cachedRenderers[i];
if (r != null)
r.sortingOrder = sortOrder + i;
}
}
void Awake()
{
Init();
@@ -65,6 +91,9 @@ public class BullitMove : MonoBehaviour
vector3_startPosition = transform.position;
vector3_startPosition.z = -400;
transform.position = vector3_startPosition;
// ⭐ 应用渲染层级(池化复用时 Init 会重新调用,Inspector 改了值也能生效)
ApplySortOrder();
}
/// <summary>对象池回收前调用:重置所有运行时状态,避免复用时残留旧数据</summary>