您的位置:首页 > 编程语言 > Lua

通过Lua代码创建一个Cube,并实现控制行走

2017-07-08 08:17 597 查看
//创建一个Cube
GameObject = UnityEngine.GameObject
Input = UnityEngine.Input
Time = UnityEngine.Time
Transform = UnityEngine.Transform
Rigidbody = UnityEngine.Rigidbody

cube = nil
transform = nil
rig = nil

function OnStart()
cube = GameObject.Instantiate(prefab)
rig = cube:AddComponent(typeof(Rigidbody))
rig.useGravity = false
transform = cube:GetComponent(typeof(Transform))
transform.position = Vector3(0,1,-5)
end

function OnUpdate()
x,y = 0,0
x = Input.GetAxis("Horizontal")
y = Input.GetAxis("Vertical")
transform:Rotate(Vector3(0,x,0)*Time.deltaTime*100)
transform.position = transform.position + transform.forward*y*Time.deltaTime*10
end

将脚本写好后拖到Unity中

在C#脚本中
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LuaInterface ;

public class CreatCubeByLuaScr : MonoBehaviour {

public TextAsset luaTex;
LuaState luaState;
public GameObject cube;
//定义一个lua函数字段
LuaFunction StarFunc;

void Start () {
luaState = new LuaState ();
luaState.Start ();
LuaBinder.Bind (luaState);
//给lua文件中使用的预设体赋值
luaState ["prefab"] = cube;
luaState.DoString (luaTex.text);
//获取lua代码中的方法
StarFunc = luaState.GetFunction ("OnStart");
//调用Lua中的代码执行
StarFunc.Call ();

}

void Update () {
UpdateFunc.Call ();
}
}
挂上c#脚本:将lua文件拖到Lua Text中

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐