Tencent / puerts

PUER(普洱) Typescript. Let's write your game in UE or Unity with TypeScript.
Other
4.99k stars 696 forks source link

【建议】是否考虑Unity版做成标准Package形式 #83

Closed watsonsong closed 2 years ago

watsonsong commented 3 years ago

这样能方便各种依赖管理

chexiongsheng commented 3 years ago

挺好的建议,主要是没时间弄,设计上是支持的。

watsonsong commented 3 years ago

xlua尝试过放到Package里面,问题是Package是只读的,生成的注册代码应该放到工程目录。但两个是不同的DLL模块,有一些访问权限是internal的部分没法访问,会改动很多代码。不知道ts现在这个会不会有问题。

chexiongsheng commented 3 years ago

puerts设计就考虑过xlua这问题。所以可以的

PleijaEternal commented 3 years ago

我弄了, Puerts 放到 Packages 里面, 然后把 Gen 放到 Asssets 里, 没有问题. Packages 里面需要用 asmdef 文件定义独立的 dll, 所以不能把生成出来的接口文件也放到 packages 下面, 其他就没有什么区别了

生成代码的时候用的是反射啊, internal也可以访问的, 问题是作为api使用的接口, 你本身就不应该是internal的, 这是个不需要考虑的设计问题其实.

chexiongsheng commented 3 years ago

我弄了, Puerts 放到 Packages 里面, 然后把 Gen 放到 Asssets 里, 没有问题. Packages 里面需要用 asmdef 文件定义独立的 dll, 所以不能把生成出来的接口文件也放到 packages 下面, 其他就没有什么区别了

生成代码的时候用的是反射啊, internal也可以访问的, 问题是作为api使用的接口, 你本身就不应该是internal的, 这是个不需要考虑的设计问题其实.

没明白你说的啥问题?

chexiongsheng commented 3 years ago

主要是能否支持生成代码和核心库分别放两个程序集,这个是可以的,也很多人这么用

PleijaEternal commented 3 years ago

如果官方默认做成package的形式, 有个好处就是安装容易, 在manifest.json添加一行就可以了, 而且好像也能自动更新, 如果不喜欢, 把package形式的文件夹直接拖进 Assets 也是能用的

或者另外弄个package 形式的项目?

chexiongsheng commented 3 years ago

是弄成一个github项目,然后manifest.json添加github地址么?

PleijaEternal commented 3 years ago

@chexiongsheng 是那样的, 但我不确定Plugins能不能自动导入, 如果单独项目或许可以做一个包含了plugins的然后用来支持package模式的安装

我是说如果plugins没有放在项目里我不知道unity会不会从其他地方导入进来, packages里面的plugins和assets里面的也没什么区别, 我这里没发现问题

PleijaEternal commented 3 years ago

有时候使用独立程序集其实是必须的, 就是项目用到多个程序集的时候, 如果需要引用Puerts里面的类, 就必须把Puerts放到单独的程序集里才行, 并不能用Assembly-CSharp这个程序集来引用, 这跟package本来就需要弄成单独程序集的行为倒是一致的

chexiongsheng commented 3 years ago

不是说独立程序集可以么?一直有人这么用。

watsonsong commented 3 years ago

歪个楼,话说xlua打算改一下支持独立程序集么?就是生成代码和核心代码在两个不同程序集里面。

RamType0 commented 3 years ago

The solution which official TextMeshPro package using is seems to be good.

zombieyang commented 2 years ago

1.3已支持。demo项目的目录结构目前应该已经可以使用upm加载 https://github.com/chexiongsheng/puerts_unity_demo 也建议使用openupm https://openupm.com/packages/com.tencent.puerts.core/