关于教程里的数据同步使用

[复制链接]
1605 |7
维纟丶酱 发表于 2023-5-19 13:33:09 | 显示全部楼层 |阅读模式
f081714267ec57a3e7025b8453e8207d__preview_type=16.png

在教程里关于自定义的同步属性,自定义类里的属性值改变后只能触发类里定义的方法,如何在外部改变类属性时触发外部的方法呢
回复

使用道具 举报

汽汽汽汽水 发表于 2023-5-19 13:34:43 | 显示全部楼层
回复

使用道具 举报

叽里咕噜小胡桃 发表于 2023-5-19 13:36:42 | 显示全部楼层
比如现在是在A.ts里 你需要在onchange的时候调用B.ts脚本里的方法的话
可以参考这里的脚本间的调用 https://forum.ark.online/forum.php?mod=viewthread&tid=1437
我的习惯就是给B.ts里写一个instance 然后在A.ts的onChange的方法里面,调用B.instance.方法名
这样就可以调用外部方法了

另外如果要在B脚本里改A脚本的属性 也可以参照上面的帖子,反正我是习惯用A.instance.bag这样的方法去改的
回复

使用道具 举报

叽里咕噜小胡桃 发表于 2023-5-19 13:37:30 | 显示全部楼层
汽汽汽汽水 发表于 2023-5-19 13:34
试试使用事件通信
https://forum.ark.online/forum.php?mod=viewthread&tid=1571

时间通信确实是更适合不那么要求环环相扣、多端之间的调用和修改~
回复

使用道具 举报

叽里咕噜小胡桃 发表于 2023-5-19 13:39:26 | 显示全部楼层
叽里咕噜小胡桃 发表于 2023-5-19 13:36
比如现在是在A.ts里 你需要在onchange的时候调用B.ts脚本里的方法的话
可以参考这里的脚本间的调用 https:/ ...

补充一点,这个方法更适合在纯S端环境下,毕竟能触发replicated的只能在S端环境,这类instance的调用方法修改值,仅限于同一个端内,如S端修改S端的数据(当然它能被replicated哈) ,如A客户端修改A客户端的数据,B客户端修改A客户端的数据,不存在在没有调用RPC或事件通信之类的端与端数据交流的方法的情况下,能够实现B客户端修改A客户端的数据,A客户端修改S客户端的数据
回复

使用道具 举报

汽汽汽汽水 发表于 2023-5-19 13:44:29 | 显示全部楼层
叽里咕噜小胡桃 发表于 2023-5-19 13:36
比如现在是在A.ts里 你需要在onchange的时候调用B.ts脚本里的方法的话
可以参考这里的脚本间的调用 https:/ ...

单例模式用太多了会越来越复杂,对于管理和性能都有影响。不能滥用单例。。
回复

使用道具 举报

叽里咕噜小胡桃 发表于 2023-5-19 13:46:30 | 显示全部楼层
汽汽汽汽水 发表于 2023-5-19 13:44
单例模式用太多了会越来越复杂,对于管理和性能都有影响。不能滥用单例。。 ...

是的,但对于小白来说是比较好上手的调用方法了hhhh 不滥用的话可以满足大部分懒汉饿汉的使用情况了
回复

使用道具 举报

空伊伊 发表于 2023-5-19 15:51:19 | 显示全部楼层
对于自定义类的属性同步,外部脚本只会当这个类对象更换了另一个新的实例时才会触发一次onChanged。

如果只更改自定义类的属性,这个引用在外部脚本看来是没有发生变更的,所以就不会触发onChanged。

image.png


回复

使用道具 举报

72小时热榜
热门版块
快速回复 返回顶部 返回列表