今天学习也碰到了这个问题,刚发现的解决办法,记录一下供大家参考:
正如楼上兄弟说的只有继承了Laya.Compnent的类可以填入getComponent函数里,下面是官方案例里的一个使用示例,Laya.Rigidbody3D继承自PhysicsColliderComponent,而PhysicsColliderComponent继承自Component,确实是这样。
onAwake(): void {
console.log("Direct Start=============")
this.target = this.owner as Laya.Sprite3D;
this.targetRig = this.target.getComponent(Laya.Rigidbody3D);
this.forwardlenth = new Laya.Vector3();
}[/code]那有些不继承自Component的就很有可能获取到的节点就是需要本身需要的Component,所以代码可以这样写:
假设需要获取场景里名叫MyVideo的VideoNode组件并播放,由于知道了视频组件是2D组件(使用的是Laya3.1版本),所以可以通过scene来获取[code]this.owner.scene.getChildByName("MyVideo").play();
这样就能获取到了,但在VSCode里并不知道getChildByName获取到的节点是什么类型,可能会报错,所以需要转换一下,可以这样写
(this.owner.scene.getChildByName("MyVideo") as Laya.VideoNode).play();