如何在任何其他脚本的任何其他函数中调用以下函数?
我试图用其他脚本调用此函数
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;
}
答案 0 :(得分:0)
您应该使用>>> from itertools import starmap
>>> list(starmap(lambda k, v: "%s=%s" % (k, v), t_dict.items()))
['k1=v1', 'k2=v2', 'k3=v3', 'k4=v4', 'k5=v5']
,其中GetComponent<"ScriptName">.StartGrab()
是包含ScriptName
的脚本的名称。
请注意,由于您的方法具有3个参数,因此在调用它时,应该传递它们,否则会出现编译器错误。
例如:
StartGrab()
您现在正在正确调用该方法。请注意,GetComponent<"ScriptName">.StartGrab(objectToGrab, grabbedObject, objectController);
,objectToGrab
和grabbedObject
必须在调用该方法的脚本中声明,并且必须与objectController
的类型等效。