【ETH】关于智能合约中方法的返回值问题
如果一个view或者pure的方法可以直接取返回值没有问题。但是如果是一个涉及到修改storage的方法,如果想要返回就不能直接获取,因为这一过程会是一个很长的异步过程,涉及到数据同步。返回也是一个交易回执对象(Transaction Receipt)。
如果一个view或者pure的方法可以直接取返回值没有问题。但是如果是一个涉及到修改storage的方法,如果想要返回就不能直接获取,因为这一过程会是一个很长的异步过程,涉及到数据同步。返回也是一个交易回执对象(Transaction Receipt)。
这几天研究了下,基于以太坊的去中心化游戏开发可行性。
决定把类率土战三的游戏做城去中心化的游戏
以太坊的做游戏的核心理念:
这两点应该是游戏玩家的痛点。如果能做到,解决痛点,能否脱颖而出呢?
言归正传,要实现以上两点就需要关键后端逻辑使用智能合约,而在以太网主网运行智能合约不现实,执行一次智能合约的成本太大(执行效率低,执行一次需要Gas成本)。所以pass。
通过预言机来调用外部逻辑,结果在放到主网?pass(gas成本会低一些,单和主网一样效率低)。
状态通道,执行效率倒是比较高。但是需要用户预存类似保证金,这个对用户门槛太高了。
一顿考察之后,决定选择基于二层网络的Skale方案,特点是不收取用户Gas,执行效率评估也OK,但是费用不低,一个月$3600
function balanceOf(address account) external returns (uint256) {
uint tt = 0;
for ( uint i = 0; i < 10000; i++ ){
tt = tt.mul( 1 );
tt = tt.add(1);
if ( randMod(10000) < 3000 ){
tt = tt.add(1);
}
}
return balances[account];
}
执行加上网络同步的耗时1000ms,基本满足类率土游戏的计算需求
真相是UnityArmatureComponent中的自动合并模型被默认打开了。设置_closeCombineMeshs为true即可
public class UnityArmatureComponent : DragonBoneEventDispatcher, IArmatureProxy
{
.....
protected bool _closeCombineMeshs = true;
.....
}
----------------2024年2月21日---------------------------
所有需要在Unity中显示的子节点,在骨架装配中设置为隐藏即可。
------------------2024年2月20日更新----------------------
如果要在导出的龙骨动画中显示出子节点需要在编辑器中设置隐藏
需要在骨骼装配中,需要显示的骨骼挂件添加一个插槽然后设置隐藏,然后在动画编辑中设置为显示,至于为什么会这样,估计是工具的内部优化吧。
进度更新,
添加城池和驻守功能
初版战报功能
...
...
战报1
战报2
战报3
队伍编辑
抢地阵地战.
玩法类似采用6边形格子