creator 编辑器中 cc.Enum 中的字符串枚举不能正常显示

你这有点耍赖了,我说的是“我们做功能的目的是让人用起来方便,选项内容是在表达清楚意思的前提下越短越好”,能理解么?分割字符串是你说出来的,我说了不止3次了别做一些无意义的事。

不要用有无意义逃避话题,存在就有人用,有人用就有意义,你说的 ”无意义“ ”意义不大“ 只是针对你自己而言,不要把自己的经验套用在别人身上,楼上包括我自己都在用字符串值的枚举,对我来说字符串枚举值就是有意义的

你说的用起来方便是对的,字符串分割也是我说的,那么我倒是想知道你有什么高招取出你前面说的在编辑器内展示的枚举的字符串值?slice? split? match?

那么我倒是想问问,这些方式有比直接通过 obj[key] 高效以及你说的方便?如果不是上面的方式,那么我倒是好奇 你怎么通过编辑器属性的值(number)从

enum color {
    "red:#ff0000",
    "yellow:#0000ff"
}

这里面取到后面的 #ff0000 颜色值,请不要说用下面

enum color {
    "#ff0000",
    "#0000ff"
}

这种方式,因为我上面已经回答过了,如果你用这种方式?我怎么在编辑器选择我想要的颜色?比如淡紫色?
希望你能继续撑下去,加油

你到现在还没明白我的意思,我说的是enum的值设置成字符串是无意义的,只需要number就足够了,因为既然要enum,就代表需要分情况处理,那么你switch case每种情况单独处理就完事了。
如果是不需要switch case分开处理的情况,那么这里根本不需要enum,一个color拾色器或者输入框获取变量就足够了,所以我说你费劲去把enum的值对应字符串,为了能参与运算是无意义的。
这个问题本质就是这么简单,跟你服不服气一点关系没有,我说的够明白了吧?

哈哈,现在还在用有无意义逃避问题,那么请你上代码,在编辑器属性面板展示 enum 样式的选择框,选择框里有用户需要看到的颜色描述(比如 red、yellow …),选择后怎么获取对应的颜色值?比如 “#ff0000

请不要说其他的,直面问题,实现楼上的需求,展示你的代码,让大家看看你的代码有多方便,而且请不要用字符串枚举值的枚举,因为你说这样无意义


最优解早给你了啊,为什么不看呢?别再说这里不需要switch case,不方便什么的。
如果只是为了取值,这里根本不需要enum,直接拾色器获取色值就行了。
既然用了enum,就代表除了取值,还有其他功能要处理,那switch case就是必要的

这是第三次了,你怎么把这个漏了?而且如果我修改枚举里面的值(“#ff0000”)怎么才能让 switch 里面的代码不受影响或者自动同步?别忘了字符串枚举值不需要关注这个问题

这是我楼上的回复,我也想问

你说的这种需求,没有使用场景。
你都enum了,改个颜色你就手动改呗,为什么要把enum转成字符串的值呢?
还是没理解enum和Object的区别。

你去百度一下,枚举是什么意思,就知道设计者为什么要这么处理了

你说的使用场景就在一楼和下面几楼,可能你又粗心大意给漏了

别写太多 ts 把自己脑子写木了,ts 只是一层衣服而已

另外回归问题,请你给出上面的答案

我还想看看你怎么撑,我就喜欢和你们这种没什么实证还死不承认的人扯

我倒是想看看你怎么实现比评价我上面代码更好的实现方式代码,请直接用代码说明,你扯再多不如能运行的代码有用

你提出一个没有使用场景的需求,一直问我怎么实现最好,我说了在已经作为enum来实现的情况下,你所说的自动同步没有必要,手动改就行了

希望你的身体正常,不要再自动屏蔽部分发言

你要能自动同步,写个数组映射一下多简单?但我还是不建议这么做因为没有必要

你不是说我上面的代码很 费劲 吗?

我想看看不费劲的代码,至少我的代码不需要手动改值,你口中不费劲的代码应该早就满足了吧?

还是说你口中不费劲的代码用起来比我这个费劲的代码还要费劲?不会吧不会吧?难道你自己写的代码就是不费劲的?别人的就都是费劲的?

请上代码

image
最简单的方法,因为已经enum了,要改色值直接手动改就行了。

image
如果你一定要强迫症,要自动更新,建议写成这样。

你这个代码存在的问题

  1. 枚举键有改动时需要手动替换所有值

  2. 编辑器会展示无意义的内容(键值对,键的作用就代表描述内容)

  3. 如果键中包含的值(比如 #0000ff)太长代码中占用的空间太大,不符合你上面的代码洁癖,多写几个switch 都比我函数占用的字节多了

  4. 键有修改时你的值数组需要对应修改,数组位置错误直接取值错误

所以你怎么证明你的代码比我的不费劲? 毕竟这上面的问题我的代码都没有

所以我要修改键中包含的值,需要做以下的操作

  1. 修改值
  2. 替换所有对应的值(还必须保证其他代码的相同字符串位置不会被替换)
  3. 修改键顺序时数组需要同步修改

而我的代码只需要

  1. 修改值

引用一下上面的话

所以我一直说你没理解我意思
针对1、枚举就是分情况讨论,有改动就改动啊。
针对2、编辑器里展示的有没有意义,根据需要来,我这个是适合一般情况的,比如
编辑器里压根不显示有关色值的东西,而是
“红色,适合新年主题”
“蓝色,让人心情平静”
具体显示什么才是有意义,由设计者根据自己需要决定,我提供的是能满足需求的方法
3、既然都enum了,说明需求本身就复杂,而不是代码复杂导致的。
还是那句话,如果不需要switch case分情况讨论,你干嘛要写个enum呢?直接获取色值就行了。
最后,代码的运行效率,简洁不是根据代码量来决定的,而是设计思路的合理性、可拓展性多方面综合考虑的结果。

让我整理下你后面的回复类型

  1. 你用字符串枚举是没有意义的,为什么要用这个?

  2. 你为什么不用取色器或者输入框,为什么要用这个?

  3. 枚举的类型不是 Object,你应该去看看 enum 是什么?

  4. 否认自己之前的发言

你转移问题的方式已经用腻了,有没有新的?