Как вызвать функцию, которая содержит параметр в любой другой функции другого скрипта? - PullRequest
0 голосов
/ 14 января 2019

Как вызвать эту функцию ниже в любой другой функции любого другого скрипта?

Я пытался вызвать эту функцию в другом скрипте, как это

grab.StartGrab();

но это не работает

public VRTK_ChildOfControllerGrabAttach other;

public void move()
{
    other.GetComponent<VRTK_ChildOfControllerGrabAttach>().StartGrab(//parameters here but how);
}

Вот функция

public override bool StartGrab(GameObject grabbingObject, GameObject givenGrabbedObject, Rigidbody givenControllerAttachPoint)
{
    if (base.StartGrab(grabbingObject, givenGrabbedObject, givenControllerAttachPoint))
    {
        SnapObjectToGrabToController(givenGrabbedObject);
        grabbedObjectScript.isKinematic = true;
        return true;
    }
    return false;
}

1 Ответ

0 голосов
/ 14 января 2019

Вы должны использовать GetComponent<"ScriptName">.StartGrab(), где ScriptName - это имя скрипта, содержащего StartGrab().

Обратите внимание, что, поскольку у вашего метода есть 3 параметра, при его вызове вы должны передавать их, иначе вы получите ошибки компилятора.

Например:

GetComponent<"ScriptName">.StartGrab(objectToGrab, grabbedObject, objectController);

Теперь вы правильно вызываете метод. Обратите внимание, что objectToGrab, grabbedObject и objectController должны быть объявлены в сценарии, в котором вы вызываете метод, и должны быть эквивалентны типу в качестве параметров StartGrab().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...