У меня есть базовая привязка объектов в моей тестовой сцене, но когда я отсоединяю объекты, привязанный объект перезапускается, если я не уберу его очень быстро.Для контекста установки сцены я хочу реализовать привязывание объектов в VR, чтобы у меня был меньший родительский объект внутри объекта, который я перемещаю, чтобы представить руку, к которой объект будет привязан в VR.Также у меня есть сценарий привязки (первый ниже), прикрепленный к объекту 'hand', и я использую триггеры на руке и квадратном объекте, к которому он присоединяется.
Любая подсказка, как я могу это исправить, поэтому яне нужно быстро тянуть, чтобы отделить объект?
Видео об ошибке
Ниже приведены сценарии, которые я использую для реализации
public class snap : MonoBehaviour, collider_helper.collider_help_reciever
{
public Transform snapObj;
public Transform SnapTarget;
bool snapped = false;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void OnTriggerEnter (Collider other)
{
Debug.Log("enter");
if (snapped == false && other.transform.GetInstanceID() == SnapTarget.GetInstanceID())
{
snapObj.position = SnapTarget.position;
snapObj.rotation = SnapTarget.rotation;
snapObj.parent = SnapTarget;
snapped = true;
}
}
public void OnTriggerExit(Collider other)
{
Debug.Log("exit");
if (snapped == true && other.transform.GetInstanceID() == SnapTarget.GetInstanceID())
{
snapObj.position = transform.position;
snapObj.rotation = transform.rotation;
snapObj.parent = transform;
snapped = false;
StartCoroutine(noSnap);
}
}
}
public class collider_helper : MonoBehaviour {
public GameObject recieving;
collider_help_reciever reciever;
// Use this for initialization
void Start () {
reciever = recieving.GetComponent<collider_help_reciever>();
}
// Update is called once per frame
void Update () {
}
void OnTriggerStay (Collider other)
{
reciever.OnTriggerEnter(other);
}
public interface collider_help_reciever
{
void OnTriggerEnter(Collider other);
}
}