访问C#静态属性,方法
-
1、Lua脚本:
--访问静态属性,方法
local GameObject = CS.UnityEngine.GameObject --获取GameObject类
local Camera=CS.UnityEngine.Camera --获取Camera类
--小技巧:如果需要经常访问的类,可以先用局部变量引用后访问,除了减少敲代码的时间,还能提高性能
print('UnityEngine.Time.deltaTime:', CS.UnityEngine.Time.deltaTime) --读静态属性
CS.UnityEngine.Time.timeScale = 0.5 --写静态属性
local camera=GameObject.Find('Main Camera')--静态方法调用
camera.name="Main Camera by Lua" --修改主相机name属性
print(Camera.main.name)
-
2、C#脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
public class _005_LuaCallCSharp : MonoBehaviour {
private LuaEnv env;
void Start ()
{
env = new LuaEnv();
env.DoString("require 'LuaCallCSharp'");
}
private void Update()
{
if(env!=null)
{
env.Tick();
}
}
private void OnDestroy()
{
env.Dispose();
}
}
运行结果:
小技巧:
如果需要经常访问的类,可以先用局部变量引用后访问,除了减少敲代码的时间,还能提高性能:
--获取GameObject类,存储在local变量GameObject中
local GameObject = CS.UnityEngine.GameObject--使用GameObject变量访问静态Find()方法
GameObject.Find('helloworld')