1
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user