关于用 PixelHitTest 代码设置点击测试的问题?

已邀请:

kelvinkh - IT

赞同来自:

之前在问了谷主关于如何在代码里去设置 FGUI编辑器中点击测试的问题。
https://ask.fairygui.com/?/question/14898
非常感谢谷主回答只要设置hitArea就好了。
但实际的代码写的时候,不知道为什么怎么都跑不太通,当我用新建了一个PixelHitTest类,然后用这个类去设置图片。但最后却报错。代码如下。

微信图片_20211229135335.png

报错image类别packageitem的rawData为空
提问2.png

这是这个fairygui的编辑器下,我先创建了一个页面,再创建了一个n1组件和一个名为n2的button,想测试动态去设置n1组件的hitArea是否能穿透button
提问3.png

这是组件里面是一张image,想用代码把image给设置给"点击测试"
提问4.png

 
代码如下
 

      var ui = this.GetComponent<UIPanel>().ui;
        GComponent page = ui.GetChild("n1").asCom;
        var img = page.GetChild("img").asImage;
        var pkitm = img.packageItem;
        PixelHitTestData pData = new PixelHitTestData();
        pData.Load(pkitm.rawData);
        PixelHitTest hitest = new PixelHitTest(pData, (int)img.x, (int)img.y, img.width, img.height);
        page.container.hitArea = hitest;

page.onClick.Add(() =>
        {
            Debug.Log("clcik");
        });



我也是试过用n1.packageItem的rawDate,能不报空,但是设置了确实能穿透,但点自己就没反应了。

谷主

赞同来自:

hitArea是一个IHitTest接口,自己实现这个接口。不是PixelHitTest。PixelHitTest不能动态创建。

要回复问题请先登录注册