예제 #1
0
    public void SetUpdate(string i_updateFuncName, GameObject obj)
    {
        var updateFuncName = i_updateFuncName.Replace("()", "");

        var     scrObj = GetScriptObj(obj);
        ELEMENT updatefunc;
        ELEMENT pgmelement;
        var     b = ELEMENT.FindFunctionFromRoot(m_rootElement, updateFuncName, out updatefunc, out pgmelement);

        Debug.Log(m_rootElement);
        if (!b)
        {
            throw new SystemException("CANNOT FIND FUNCTION : " + i_updateFuncName);
        }

        Debug.Log("updatefunc = " + updatefunc);
        scrObj.m_update.function = updatefunc;
        scrObj.m_update.stack    = m_stackval.FindStack(pgmelement.decname);

        {
            var parentScrObj = (xmlScriptObj)hgca.FindAscendantComponent(scrObj.gameObject, typeof(xmlScriptObj));
            if (parentScrObj != null)
            {
                scrObj.m_valid = parentScrObj.m_valid;
            }
        }
    }
예제 #2
0
    public object RunFunction(string funcname, object args, xmlScriptObj scrObj)
    {
        ELEMENT funcElement;
        ELEMENT pgmElement;
        var     b = ELEMENT.FindFunctionFromRoot(m_rootElement, funcname, out funcElement, out pgmElement);

        if (!b)
        {
            return(false);
        }
        var stack = m_stackval.FindStack(pgmElement.decname);

        return(xmlScriptFunc.ExecuteDEC_FUNC(funcElement, scrObj, stack, args));
    }
예제 #3
0
    public void RunFunctionFromHTML(string i_funcName, object args, GameObject obj = null)
    {
        var funcname = i_funcName.Substring(0, i_funcName.IndexOf('('));
        var scrObj   = GetScriptObj(obj);

        ELEMENT funcElement;
        ELEMENT pgmElement;
        var     b = ELEMENT.FindFunctionFromRoot(m_rootElement, funcname, out funcElement, out pgmElement);

        if (!b)
        {
            throw new SystemException("CANNOT FIND FUNCTION: " + i_funcName);
        }
        var stack = m_stackval.FindStack(pgmElement.decname);

        xmlScriptFunc.ExecuteDEC_FUNC(funcElement, scrObj, stack, args);
    }
예제 #4
0
    public static bool CallScriptFunction(string funcname, xmlScriptObj scrObj, STACKVAL stack, object args, out object o)
    {
        o = null;
        ELEMENT funcElement;
        ELEMENT pgmElement;
        var     b = ELEMENT.FindFunction(stack, funcname, out funcElement, out pgmElement);

        if (!b)
        {
            b = ELEMENT.FindFunctionFromRoot(scrObj.m_rootElement, funcname, out funcElement, out pgmElement);
        }
        if (!b)
        {
            return(false);
        }
        o = xmlScriptFunc.ExecuteDEC_FUNC(funcElement, scrObj, stack, args);
        return(true);
    }