场景名不能用Game否则qq小游戏发布时会和系统内的Game类冲突造成Game.scene找不到。
挂到场景和场景内物体的组件从Laya.Script派生,文档类和Sprite的runtime类要派生自Sprite以及后继类
Script要获取物体引用调用.owner 然后as成Sprite或者它的runtime类
Sprite.getComponent(xxx)获取其上挂载的Script类
很多操作在Script的构造函数被调用时没有完成,所以在onEnable里处理初始化是最合适的
Script有一组对应生命周期阶段的虚函数可以直接被覆盖 注意覆盖时保证返回值和参数类型都一致
Sprite需要自己注册事件
重力感应:
微信小程序和QQ小程序需要先启动重力感应,并且使用不同于H5的另外一个API设置回调,下面例子
if (Laya.Browser.onWeiXin || Laya.Browser.onQQMiniGame) { //小游戏环境 let obj:any = { success:()=>{ wx.onAccelerometerChange((evt) => { this.acc = evt.x;}); }, fail:()=>{ console.log("重力感应启动失败"); } }; wx.startAccelerometer(obj); } else { //H5 Laya.Accelerator.instance.on(Laya.Event.CHANGE, this, this.onMotoin); }
读取rotation有时候会变成NaN 用默认值0
x.rotation = xxx || 0;
解决
可在属性窗口看到的Laya.Script成员变量:
/** @prop {name:"属性显示名",tips:"提示",type:"属性类型名",default:属性默认值} */
public propName:XXX = YYY
上面的空格都不能省略 否则属性窗口会显示不出
默认值需要在default和 = YYY一起指定
点击数:175