这是第423篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

UWA社区主页:community.uwa4d.com

本期目录:

  • InstantiateAsync有什么需要特殊处理的吗
  • 如何长按鼠标左键持续射击
  • 如何根据拾取物数量来提高玩家的速度
  • 如何在发生碰撞时更换我的角色

Editor

Q:请教个问题,InstantiateAsync有什么需要特殊处理的吗?我发现异步实例化出来的角色,好像丢了蒙皮一样,Mesh完全不跟着动画、还有根节点动,始终以T-pose的形态呆在固定位置,而且同一个角色,同步加载是正常的。

这是我这边的环境:


A:我们在接近你的版本和更高版本试了下,分别复现了问题和正常加载。查了下可能是类似下面的Unity Bug(异步实例化相关的bug有很多),应该要升一下版本。


感谢旋@UWA问答社区提供了回答,欢迎大家转至社区交流

https://answer.uwa4d.com/question/67ce97913d306f3e9d594e6c

Script

Q:我用这种方法(参考蓝图)实现了按住鼠标左键使我的步枪自动射击,请问有没有其它更简单的方法可以做到这一点?


A:实际上有更简单的实现方式:

使用EnhancedInputAction,其中有一个Ongoing节点。


给IA_Shoot增加一个Hold的Trigger,将原本的子弹发射功能从Triggered改成Ongoing即可。



效果如下(这里射的太快子弹之间有一些碰撞):

针对以上问题,有经验的朋友欢迎转至社区交流

https://answer.uwa4d.com/question/67cea030682c7e5cd61bfa10

Script

Q:大家好,目前我有一个Pickup蓝图来处理拾取计数器,当拾取数量达到某个值时玩家可以完成关卡。现在我想添加一个函数,以便每拾取10次,玩家速度就会略微增加,但是我当前的尝试没有效果。


A:通过GetPlayerCharacter拿到CharacterMovement节点,修改其中的MaxWalkSpeed即可,可以使用Sequence或其它节点来控制触发的条件。

增加速度的核心逻辑如下:


连上除法的判断即可。另外为了将两个逻辑放在一起,可以使用Sequence节点。

复现(简单版本):


针对以上问题,有经验的朋友欢迎转至社区交流:

https://answer.uwa4d.com/question/67cea28e682c7e5cd61bfa12

Script

Q:我有一个小马里奥,我想让它在与蘑菇碰撞时更换角色(变成大马里奥),该如何操作呢?






A:没法直接更换角色,通常来说需要三步:

1. 关闭当前角色的碰撞

2. 生成新的角色并控制它

3. 销毁老的角色


因为尝试用了一个固定视角,所以需要加一个Set Control Rotation节点,不然WASD的方向会和当前视角对不上:



针对以上问题,有经验的朋友欢迎转至社区交流:

https://answer.uwa4d.com/question/67cea41b3d306f3e9d594e6e

封面图来源于网络

今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com

UWA社区:community.uwa4d.com

UWA学堂:edu.uwa4d.com

点击下方名片关注我们,将我设为星标,及时接收小编每日推送哦,性能优化不迷路~

近期精彩回顾

ad1 webp
ad2 webp
ad1 webp
ad2 webp