ジェネリックデリゲートを使用して、インスタンス化されたオブジェクトをゲームエンジンで管理する方法を理解しようとしています。インスタンス化されたオブジェクトを管理するための汎用代理人
ここは私が何をしようとしている実証するためのいくつかの擬似コードです:
public class ObjectManager
{
public delegate void ObjectManagerEvent <T> (T instantiatedObject);
public ObjectManagerEvent <T> onObjectInstantiated;
public void InstantiateObject (Object objToInstantiate)
{
var obj = SomeInternalInstantiateMethod();
ObjectManagerEvent _onObjectInstantiated = onObjectInstantiated;
if (_onObjectInstantiated != null)
{
_onObjectInstantiated (obj);
}
}
}
public class Shape : EBehaviour {}
public class Animal : EBehaviour {}
public class DemoShape
{
private void Init()
{
ObjectManager.onObjectInstantiated += OnObjectInstaniated;
}
public void OnObjectInstaniated (Shape shape)
{
// do something with shape
}
}
public class DemoAnimal
{
private void Init()
{
ObjectManager.onObjectInstantiated += OnObjectInstaniated;
}
public void OnObjectInstaniated (Animal animal)
{
// do something with animal
}
}
私はpublic ObjectManagerEvent <T> onObjectInstantiated();
がエラーをスローすることを知っているが、私はちょうど種類の失われたものを私を達成するためにどのようにです欲しいです。
任意のポインタ?