【发布时间】:2023-03-08 11:20:01
【问题描述】:
我想为我创建的每个项目分配某种游戏对象,然后当我创建一个新对象(称为项目)时,它会将分配的游戏对象作为子对象。
为此,我有一个可编写脚本的对象类,其中包含一个名为“gameObj”的公共游戏对象:
public abstract class ItemObject : ScriptableObject
{
public int id;
public GameObject gameObj;
}
然后,在另一堂课上,我想有这样的东西:
public class GroundItem : MonoBehaviour, ISerializationCallbackReceiver
{
public ItemObject item;
public void OnBeforeSerialize()
{
this.gameObject.transform.GetChild(0) = item.gameObj; //WRONG CODE, NEED HELP HERE
}
}
目的是将给定 ItemObject.item 中的 gameObj 设置为 GroundItem 的 GameObject。
最终的目的是拥有大量各种可编写脚本的项目(如面包、剑、石头等),每个项目都会分配一个 GameObject,一旦我创建了一个新的 GroundItem 游戏对象,我将简单地分配可编写脚本的对象项,其子项将拥有游戏对象本身(包括所有视觉效果、特殊脚本等)。
作为参考,在以下链接中,此人从第 4 分钟到第 6 分钟都在这样做,但使用的是精灵而不是游戏对象。
有人知道应该怎么写吗?有没有可能?
【问题讨论】:
标签: c# unity3d parent-child