《一觉醒来,全球 cocos 技术下降 100 年》

通俗的理解 节点就不仅有 位置的概念 还有大小 的概念,为啥就不能直接设置呢。
看起来分开来 很牛逼 ,实际却很恶心 ,写代码非得写一下 getComponent 的操作 ,增加了成吨的工作量 。、

1赞

写的太棒了,忍不住出一幅对联

上:去小解,遇小姐,小姐在小解,笑劫小姐
下:去小便,遇小编,小编在小便,笑扁小编

批:小编饮小姐小便

3赞

我觉得做东西匠心比工艺更重要 现在给人感觉就是用户体验靠边 我独自优雅 但是这种优雅在掉渣的用户体验下有点像那啥

是不是现在椰子头没有产品经理了

1赞

我只在乎用起来爽不爽,效率是引擎内部的事,,

1赞

从性能来说用setPosition没有任何问题,但是也不能将xyz给去掉,如果单独修改某一个也去用setPosition就过于麻烦了。应该是是推荐使用setPosition而不是直接将xyz给去掉,非但不能去掉还应该添加scaleXscaleYscaleZ这种便捷api

1赞

如果要方便, 可以给node加了一个代理对象,通过代理对象操作node丝滑无比
/**给cc.Node添加代理属性p */
if (!cc.Node.prototype.hasOwnProperty(‘p’)) {
Object.defineProperty(cc.Node.prototype, ‘p’, {
get: function () {
let proxy = proxy_map.get(this);
if (!proxy) {
proxy = free_proxy_list.length ? free_proxy_list.pop() : new WDNodeProxy();
proxy.setNode(this);
proxy_map.set(this, proxy);
}
return proxy;
},
set: function (value) {
throw new Error(“不能设置Node节点的p属性!”);
},
enumerable: false,
configurable: false,
})
}

declare module “cc” {
interface Node {
/**获取节点代理 */
get p(): WDNodeProxy;
}
}

使用的时候直接node.p.xxx, 想怎么扩展都可以,支持tween操作

2赞

你这克隆不用消耗性能的话假如在update里面

1赞

是的,反人类罪 :face_with_symbols_over_mouth:

1赞

就是对U拙劣的模仿,但是在U里面Vector3是结构体,没有gc问题。

1赞

像极了后来的策划对程序说 这个东西我们没抄全 下个小版本我们升级一下 :relieved:

阁下莫非就是绰号对王之王的对穿肠

1赞

小弟读过两年书,尘世中一个迷途小书僮,华安!

1赞

虽然我有10000年经验,最近在用3.x,不得不说还是2.x香。

1赞

这个我倒是理解,引擎组要兼容3D的东西,node只作为树形结构的搭建和位置旋转缩放的记录没毛病,你说的大小是基于2d来的只有长宽,对3d来说还有个一维高度,如果这个节点只是搭建树形结构用这个大小还是多余的,透明度又和渲染的东西相关,一个空节点又不需要渲染,拆分成单独的UITransform、UIOpacity要啥功能自己往node上加组件。

1赞

原因就是组件化,是什么组件做什么事。
unity的GameObject 对比 cocos的node
unity的Transform 对比 cocos的node
unity的RectTransform 对比 cocos的node+UITransform+Widget

unity的GameObject只是一个容器,3d的Transform父子关系+位置+旋转+缩放、2d的RectTransform父子关系+位置+锚点+轴心点+旋转+缩放+宽高+布局
cocos的node容器+父子关系+位置+旋转+缩放,2d的UITransform宽高+锚点,2d的Widget布局

对比后你会发现unity的组件化更彻底,cocos的node集成了2d3d都要用的功能,把不通用的功能剔除去当组件了。
从开发2d游戏来说,这2个引擎你要设置大小其实都要通过组件。

5赞

让我想起了论坛里一位老哥的帖子

还有他写的输入管理我现在也在用

2赞

哈哈哈,没想到我模仿Unity写的组件还这么受欢迎啊。这也是cocos的代码写法有点麻烦,所以模仿untiy的MonoBehaviour写了一个Creator版的。代码简化了很多。

设置坐标,无论是局部坐标还是世界坐标就是那么方便。

设置物体宽高也是很方便

设置透明度也很方便,无论是以alpha还是opacity

unity经典的gameObject和Transform模式

2赞

继承Behaviour脚本后,使用起来就是这么方便。
如果用creator原有的方式实现这些功能代码最少多3倍,结果我这么优化简洁了很多。

1赞

哪里化简了

有种来自老艺术家的从容 我也要学习一下包一层壳了 :laughing: