LayaBox---TypeScript---首次接触遇到的问题
Posted 格拉格拉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LayaBox---TypeScript---首次接触遇到的问题相关的知识,希望对你有一定的参考价值。
目录
3:选中物体,调整collider的x为负数时,运行时,物体消失。
问题6:暴露在属性面板的变量 在面板赋值后,代码内调用显示为null 或 undefined
问题8:如上,获取脚本挂载物体下的子物体没有问题,获取其它物体就取不到。
1.拖拽图片到层级面板,F6执行,在画布中不显示
尝试了几次发现 不显示的图片与显示的图片区别就是。 不显示的图片没有设置为‘不打包’。尝试将图片改成不打包,结果显示正常。
2.脚本中定义了公共变量,在面板中不显示
/** @prop name:intType, tips:"整数类型示例", type:Int, default:1000*/
public intType: number = 1000;
/** @prop name:numType, tips:"数字类型示例", type:Number, default:1000*/
public numType: number = 1000;
/** @prop name:strType, tips:"字符串类型示例", type:String, default:"hello laya"*/
public strType: string = "hello laya";
/** @prop name:boolType, tips:"布尔类型示例", type:Bool, default:true*/
public boolType: boolean = true;
/** @prop name:shoe,tips:"物体",type:Node,default:null*/
public shoe = null;
// 更多参数说明请访问: https://ldc2.layabox.com/doc/?nav=zh-as-2-4-0
反复研究了许多遍,最终发现问题出在layaAir IDE 没有自动刷新机制,需要手动选中非该脚本挂载的物体,然后再回来,才能刷新出新定义的变量属性.
就很栓Q,差点要改写博客为: LayaBox从安装到卸载了
3:选中物体,调整collider的x为负数时,运行时,物体消失。
需要在层级面板选中该物体下的collider组件,而不要选中该物体 然后去属性面板调collider的位置。
4:获取物体坐标
Node类型的物体没有坐标属性,需要手动转为Laya.Sprite 或 3d的 Laya.Sprite3D
private own:Laya.Sprite = null;
this.own = this.owner as Laya.Sprite;
console.log(this.own.y);
问题5:通过物体获取该物体上挂载的脚本
脚本挂载到最上层的Scene物体上,就获取不到物体。也就无从获取物体上的脚本了
解决办法:不要把脚本挂到场景物体上,可以选择其它子物体,然后去获取就可以了。
/** @prop name:score,tips:"物体",type:Node,default:null */
score = null;
private scoreScript = null;
onAwake()
this.scoreScript = this.score.getComponent(ScorePanel);
问题6:暴露在属性面板的变量 在面板赋值后,代码内调用显示为null 或 undefined
研究半天没找到原因和解决办法,最后更换为代码获取
private txt_timer:Laya.Text =null;
private txt_myScore:Laya.Text =null;
private txt_aiScore:Laya.Text =null;
onAwake()
this.txt_myScore = this.owner.getChildByName("txt_myScore") as Laya.Text;
this.txt_aiScore = this.owner.getChildByName("txt_aiScore") as Laya.Text;
this.txt_timer = this.owner.getChildByName("txt_timer") as Laya.Text;
问题7.注意就算在不同的脚本里也不能使用相同名字的变量
问题8:如上,获取脚本挂载物体下的子物体没有问题,获取其它物体就取不到。
this.time_down = Laya.stage.getChildByName("txt_timeDown");
直接在layaBOX的层级面板添加的物体。好像不会添加到stage里。所以调试结果stage下的child数量为0. 最后更换了获取方式为:
//获取同级物体
let go = this.owner.parent.getChildByName("objName")
问题9:
以上是关于LayaBox---TypeScript---首次接触遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章