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

//创建一个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中




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值