Как дать сценарию понять, что GameObject схвачен в единстве 3d - PullRequest
0 голосов
/ 12 декабря 2018

Я работаю над проектом VR с использованием SteamVR, и мне нужно определенное событие (система частиц), чтобы запускаться, когда GameObject захватывается контроллерами. Я попробовал этот код (C #), чтобы определить, захвачен ли этот gameObject и неработать правильно (кажется, что это всегда так)

    private Interactable interactable;
    public bool isGrabbed=false;

    // Use this for initialization
    void Start()
    {
        interactable = this.GetComponent<Interactable>();

    }

    // Update is called once per frame
    void Update()
    {
        if (interactable != null )
        {

            isGrabbed = true;
        }

    }

Ответы [ 2 ]

0 голосов
/ 27 июня 2019
transform.GetComponent<OVRGrabbable>().isGrabbed
0 голосов
/ 12 декабря 2018

Здесь вы проверяете, существует ли Компонент interactable -> Проверка, не является ли он null.Конечно, если вы не удалили его, он существует.

Вероятно, вам следует использовать предоставленный класс Throwable или один из других.Взгляните на демонстрационную сцену в папке SteamVR / InteractionSystem, так как она была обновлена ​​не так давно и теперь стала намного более функциональной.

В зависимости от ваших потребностей вы должны проверить Лук или что-то еще.Существует также документация в формате PDF, если папка SteamVR называется «Плагин SteamVR Unity - Input System.pdf», который включает в себя документацию.

Удачи!

...