hch
9 小时以前 bc6f633a2f3cfc01122d8fd4452f69313ddcb32b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using UnityEngine;
 
public class HomeGridLayoutCell : MonoBehaviour
{
    [Header("模式")]
    [Tooltip("勾选则固定在目标格子上占位;不勾则作为流水元素自动填空。")]
    public bool isFixedPosition;
 
    [Header("排序")]
    [Tooltip("决定固定元素的所在格子,或流水元素的出场顺序(注意从0开始计)。")]
    public int sortIndex;
 
    [Tooltip("当多个元素抢占同一个格子或排序相同时,该值越小越优先。")]
    public int subSortIndex;
 
    private void OnEnable()
    {
        NotifyParentToUpdate();
    }
 
    private void OnDisable()
    {
        NotifyParentToUpdate();
    }
 
    /// <summary>
    /// 通知父级的网格脚本做“脏标记”,等待下一次轮询时重新排版
    /// </summary>
    private void NotifyParentToUpdate()
    {
        // 如果物体被销毁或者没有父级了,就不管了
        if (transform.parent == null)
            return;
 
        HomeGridLayout layout = transform.parent.GetComponent<HomeGridLayout>();
        if (layout != null)
        {
            // 改为仅仅设置标志位,不再立即触发
            layout.MarkAsDirty(); 
        }
    }
}