您当前的位置: 首页 > 
  • 4浏览

    0关注

    193博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Slua中的iter和IsNull用法

我寄人间雪满头丶 发布时间:2022-04-20 10:59:24 ,浏览量:4

iter:在lua中遍历IEnumertable对象

c#中使用foreach语句遍历IEnumertable,例如List,Array等, 在slua中,可以使用Slua.iter作为迭代函数遍历这些对象, 例如:

    for t in Slua.iter(Canvas.transform) do
		print("foreach transorm",t)
    end
IsNull:判断GameObject是否为null

因为Unity GameObject被destroy后,并不是真正的null,而是一个被标记了为destroyed的GameObject,而GameObject重载了 == 操作符,在c#中可以 == 判断是否为null(虽然它不是null),而这个gameobject被push到lua后,并不能判断==nil,所以slua提供IsNull函数,用于判断是否GameObject被Destory,或者GetComponent的返回值其实不存在,也可以通过IsNull判断,例如:

    local go = GameObject()
    local comp=go.GetComponent(SomeNotExistsComponent)
    Slua.IsNull(comp) --true
    GameObject.Destroy(go)
    Slua.IsNull(go) -- true
关注
打赏
1648518768
查看更多评论
立即登录/注册

微信扫码登录

0.1297s