Lua练习。
XLua框架。附上代码:
生成Cube:
MyUnityEngine = CS.UnityEngine
myCube = MyUnityEngine.GameObject.CreatePrimitive(MyUnityEngine.PrimitiveType.Cube)
local myLable = MyUnityEngine.GameObject("lable")
rangeF = MyUnityEngine.Random.Range(1,16)
local cubeName = 0
for i = 0, 3 do
for j = 0, 3 do
cubeName = cubeName + 1
if(cubeName == 8) then
break;
end
v3 = MyUnityEngine.Vector3(i * 2, j * 2, 0)
obj = MyUnityEngine.Object.Instantiate(myCube, v3 ,MyUnityEngine.Quaternion.identity)
obj.gameObject.name = cubeName .. ""
end
end
MyUnityEngine.Object.Destroy(myCube)
鼠标扶上物体显示信息:
这里用到了XLua的宏定义和射线。
xlua.hotfix(CS.Exercise, 'Update', function(self)
local hit = MyUnityEngine.RaycastHit
local ray = MyUnityEngine.Camera.main:ScreenPointToRay(MyUnityEngine.Input.mousePosition)
local flag,hit = CS.Exercise.RayFunction(ray,1000)
if flag then
print(hit.transform.name)
end
end)
对应代码(C#):
[CSharpCallLua]
[Hotfix]
public class Exercise : MonoBehaviour
{
LuaEnv luaEnv = new LuaEnv();
void Start()
{
luaEnv.DoString("require 'Exercise'");//加载
}
[LuaCallCSharp]
void Update()
{
}
//射线
public static bool RayFunction(Ray ray, out RaycastHit hit, int length)
{
return Physics.Raycast(ray, out hit, 1000);
}
}