第一种方法
lua脚本
function e()
H=CS.UnityEngine.Input.GetAxis(“Horizontal”)
V=CS.UnityEngine.Input.GetAxis(“Vertical”)
CS.UnityEngine.GameObject.Find(“Cube”).transform:Rotate(CS.UnityEngine.Vector3(0,H,0))
CS.UnityEngine.GameObject.Find(“Cube”).transform:Translate(CS.UnityEngine.Vector3(0,0,V))
end
C#脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
using System;
using System.IO;
public class One1 : MonoBehaviour
{
[LuaCallCSharp]
Action e;
internal static LuaEnv luaEnv = new LuaEnv();
private LuaTable scriptEnv;
public TextAsset luaScript;
void Start()
{
scriptEnv = luaEnv.NewTable();
luaEnv.AddLoader((ref string filename) =>
{
if (filename == “one”)
{
filename = Application.dataPath + “/” + filename + “.lua.txt”;
return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(filename));
}
return null;
});
luaEnv.DoString(“require’one’”);
LuaTable meta = luaEnv.NewTable();
meta.Set("__index", luaEnv.Global);
scriptEnv.SetMetaTable(meta);
meta.Dispose();
}
void Update()
{
e();
}
}
第二种方法
lua脚本
function e()
H=CS.UnityEngine.Input.GetAxis(“Horizontal”)
V=CS.UnityEngine.Input.GetAxis(“Vertical”)
self.transform:Rotate(CS.UnityEngine.Vector3(0,H,0))
self.transform:Translate(CS.UnityEngine.Vector3(0,0,V))
end
C#脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
using System;
using System.IO;
public class One1 : MonoBehaviour
{
[LuaCallCSharp]
Action e;
internal static LuaEnv luaEnv = new LuaEnv();
private LuaTable scriptEnv;
public TextAsset luaScript;
void Start()
{
scriptEnv = luaEnv.NewTable();
LuaTable meta = luaEnv.NewTable();
meta.Set("__index", luaEnv.Global);
scriptEnv.SetMetaTable(meta);
meta.Dispose();
scriptEnv.Set(“self”, this );
luaEnv.DoString(luaScript.text, “one”, scriptEnv);
scriptEnv.Get(“e”, out e);
void Update()
{
e();
}