用的语言是TS,当前要快速知道这个物体是一个什么类型的东西,目前有两种方案。
一、用node.getComponent(script) 这样去获取到节点中的脚本,然后判断脚本上的属性。
二、直接在node中添加一个tag属性,然后直接判断node.tag
需要频繁这样去操作,想请教一下哪一种的性能消耗会比较少?
用的语言是TS,当前要快速知道这个物体是一个什么类型的东西,目前有两种方案。
一、用node.getComponent(script) 这样去获取到节点中的脚本,然后判断脚本上的属性。
二、直接在node中添加一个tag属性,然后直接判断node.tag
需要频繁这样去操作,想请教一下哪一种的性能消耗会比较少?
我是更加倾向第二种,不过node本身就很大了,再往里面添东西会不会消耗更大 得不偿失
或者有没有老哥有别的更好的方法? 可能我的方法比较野鸡
就用第二种,或者将js对象添加到node上,
比如: onLoad(){
this.node.xxJS = this;
}
第二种
如果只找一个属性肯定tag快了,缺点就是只能找一个属性,然后是可读性不好。
node.getComponent(script).tag 也还好,可读性更好,更灵活
看你自己需要了
下面是getComponent代码,看起来node.getComponent传参直接传类,不是字符串会更快,因为省掉了js.getClassByName这一步
getComponent (typeOrClassName) {
var constructor = getConstructor(typeOrClassName);
if (constructor) {
return findComponent(this, constructor);
}
return null;
}
function getConstructor(typeOrClassName) {
if (!typeOrClassName) {
cc.errorID(3804);
return null;
}
if (typeof typeOrClassName === 'string') {
return js.getClassByName(typeOrClassName);
}
return typeOrClassName;
}
js.getClassByName = function (classname) {
return _nameToClass[classname];
};