Вы можете отсоединить объект от цели vuforia - сделав его не дочерним, но вместо этого установить его где-нибудь еще в иерархии - и только переместить его в правильные координаты OnTargetFound
.
Добавьте, например, UnityEvent<Transform>
подобно (это относится к цели vuforia)
[system.Serializable]
public class TransformEvent : UnityEvent<TargetFoundEventHandler>
{
}
public class TargetFoundEventHandler : DefaultTrackableEventHandler
{
public TransformEvent onTrackingFound;
protected override void OnTrackingFound()
{
onTrackingFound.Invoke(transform);
}
}
Вы можете использовать это для ссылки на обратные вызовы (аналогично onClick
из Button
s), но эти методы должны ожидать, что параметр TargetFoundEventHandler
подобен (это относится к объекту для размещения)
public class PlaceMeOnTarget()
{
public void PlaceOnTarget(TargetFoundEventHandler target)
{
transform.SetPositionAndRotation(target.transform.position, target.transform.rotation);
// optinally remove the callback so this object
// will not be placed elsewhere
target.onTrackingFound.RemoveListener(PlaceOnTarget);
}
}