示例#1
0
    void Update()
    {
        // Lua側にイベント名を渡して、処理する関数を呼び出す
        ArrayList list = new ArrayList();

        list.Add(Time.deltaTime);
        LuaManager.FunctionData data = new LuaManager.FunctionData();
        data.returnValueNum = 0;
        data.functionName   = "UpdateFromUnity";
        data.argList        = list;
        ArrayList returnList = LuaManager.Instance.Call(UnityUtility.Instance.scriptName, data);
    }
示例#2
0
    // ※本来は、これ、アセットバンドル化した物を読み込んでやることだからね!
    private IEnumerator ResourceLoad(LoaderData loaderData)
    {
#if UNITY_IPHONE
        //string path = Application.streamingAssetsPath + "/" + "Utility.lua";
        string path = loaderData.LoadPath;

        StreamReader sr = new StreamReader(path, System.Text.Encoding.GetEncoding("utf-8"));

        // 内容をすべて読み込む
        string text = sr.ReadToEnd();

        // 閉じる
        sr.Close();

        string toPath = loaderData.SavePath;
        File.WriteAllText(toPath, text, System.Text.Encoding.GetEncoding("utf-8"));
        yield return(null);
#else
        //string path = Application.streamingAssetsPath + "/" + "Utility.lua";
        string path = loaderData.LoadPath;
        Debug.Log("-----Resources load-----");
        WWW www = new WWW(path);
        while (!www.isDone)
        {
            yield return(null);
        }

        //string toPath = Application.persistentDataPath + "/LuaUtility.lua";
        string toPath = loaderData.SavePath;
        File.WriteAllBytes(toPath, www.bytes);
#endif
        LoadDataStackList.RemoveAt(0);
        IsLoading = false;

        loaderData.CallbackName     = loaderData.CallbackName;
        loaderData.CallbackFunction = loaderData.CallbackFunction;

        if (loaderData.CallbackName != "")
        {
            string functionName          = loaderData.CallbackName;
            LuaManager.FunctionData data = new LuaManager.FunctionData();
            data.returnValueNum = 0;
            data.functionName   = functionName;
            ArrayList list = new ArrayList();
            data.argList = list;
            ArrayList returnList = LuaManager.Instance.Call(UnityUtility.Instance.scriptName, data);
        }

        if (loaderData.CallbackFunction != null)
        {
            loaderData.CallbackFunction();
        }
    }
示例#3
0
    void testLuaManager()
    {
        TextAsset file = Resources.Load <TextAsset>("function_lua");

        LuaManager.FunctionData data = new LuaManager.FunctionData();
        data.returnValueNum = 4;
        data.functionName   = "calc";
        ArrayList list = new ArrayList();

        list.Add(50.0f);
        list.Add(150.0f);
        data.argList = list;
        ArrayList returnList = gLuaManager.Call(file, data);
    }
示例#4
0
    public void OnClickButton()
    {
        string hierarchyName = gameObject.name;

        // Lua側にイベント名を渡して、処理する関数を呼び出す
        LuaManager.FunctionData data = new LuaManager.FunctionData();
        data.returnValueNum = 0;
        data.functionName   = "EventClickButtonFromUnity";
        ArrayList list = new ArrayList();

        list.Add(hierarchyName);
        data.argList = list;
        ArrayList returnList = LuaManager.Instance.Call(UnityUtility.Instance.scriptName, data);
    }
    void OnMouseUp()
    {
        //取得したscreenPointの値を変数に格納
        float x = Input.mousePosition.x;
        float y = Input.mousePosition.y;

        // Lua側にイベント名を渡して、処理する関数を呼び出す
        ArrayList list = new ArrayList();

        LuaManager.FunctionData data = new LuaManager.FunctionData();
        data.returnValueNum = 0;
        data.functionName   = "OnMouseUpFromUnity";
        list.Add(x);
        list.Add(y);
        data.argList = list;
        ArrayList returnList = LuaManager.Instance.Call(UnityUtility.Instance.scriptName, data);
    }
示例#6
0
    // Update is called once per frame
    void Update()
    {
        // 通常攻撃
        if (Input.GetMouseButtonDown(0))
        {
            LuaManager.FunctionData data = new LuaManager.FunctionData();
            data.returnValueNum = 1;
            data.functionName   = "CalcNormalAttackDamage";
            ArrayList list = new ArrayList();
            // int値うまくつかえないから、とりあえずFloatで代用
            list.Add(100f);
            list.Add(10f);
            list.Add(1f);
            list.Add(100f);
            list.Add(10f);
            list.Add(1f);
            data.argList = list;
            ArrayList returnList = LuaManager.Instance.Call("LuaCheckConditions", data);

            double damage = (double)(returnList[0]);
        }

        // スペシャル攻撃
        if (Input.GetMouseButtonDown(1))
        {
            LuaManager.FunctionData data = new LuaManager.FunctionData();
            data.returnValueNum = 2;
            data.functionName   = "CalcSpecialAttackDamage";
            ArrayList list = new ArrayList();
            list.Add(100f);
            list.Add(10f);
            list.Add(1f);
            list.Add(100f);
            list.Add(10f);
            list.Add(1f);
            data.argList = list;
            ArrayList returnList = LuaManager.Instance.Call("LuaCheckConditions", data);

            double damage   = (double)(returnList[0]);
            double mydamage = (double)(returnList[1]);
        }
    }