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
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.UpdateLayout();
        }
    }
}