Files
2026-02-21 16:45:37 +08:00

71 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace PrefabEvolution
{
[Serializable]
public class PELinkage
{
[Serializable]
public class Link
{
public int LIIF;
public UnityEngine.Object InstanceTarget;
public override string ToString()
{
return string.Format("[Link]{0}:{1}", LIIF, InstanceTarget);
}
}
public List<Link> Links = Utils.Create<List<Link>>();
public Link this[int liif]
{
get
{
return Links.FirstOrDefault((Link link) => link.LIIF == liif);
}
}
public Link this[Link link]
{
get
{
if (link == null)
{
return null;
}
return this[link.LIIF];
}
}
public Link this[UnityEngine.Object obj]
{
get
{
return Links.FirstOrDefault((Link link) => link.InstanceTarget == obj);
}
}
public UnityEngine.Object GetPrefabObject(GameObject prefab, UnityEngine.Object instanceObject)
{
PEPrefabScript component = prefab.GetComponent<PEPrefabScript>();
Link link = this[instanceObject];
if (link == null)
{
return null;
}
Link link2 = component.Links[link.LIIF];
if (link2 == null)
{
return null;
}
return link2.InstanceTarget;
}
}
}