public static Object InstantiateOP(Func <Object, Transform, Object> orig, Object original, Transform parent)
 {
     return(ShrineFakePrefab.Instantiate(original, orig(original, parent)));
 }
 public static Object InstantiateOPI(Func <Object, Transform, bool, Object> orig, Object original, Transform parent, bool instantiateInWorldSpace)
 {
     return(ShrineFakePrefab.Instantiate(original, orig(original, parent, instantiateInWorldSpace)));
 }
 public static T InstantiateGeneric <T>(Object original) where T : Object
 {
     return((T)ShrineFakePrefab.Instantiate(original, Object.Instantiate(original)));
 }
 public static Object InstantiateOPRP(Func <Object, Vector3, Quaternion, Transform, Object> orig, Object original, Vector3 position, Quaternion rotation, Transform parent)
 {
     return(ShrineFakePrefab.Instantiate(original, orig(original, position, rotation, parent)));
 }
 public static Object InstantiateOPR(Func <Object, Vector3, Quaternion, Object> orig, Object original, Vector3 position, Quaternion rotation)
 {
     return(ShrineFakePrefab.Instantiate(original, orig(original, position, rotation)));
 }
 public static Object InstantiateO(Func <Object, Object> orig, Object original)
 {
     return(ShrineFakePrefab.Instantiate(original, orig(original)));
 }