本文汇总了 2024 年 8 月 3 日 - 2024 年 8 月 9 日 Unity 中文社区精选问答。如果在使用 Unity 过程中遇到任何问题,欢迎点击阅读原文前往 Unity 中文社区提问,将有官方技术支持及社区贡献者当日解答。此外,本周还有少量待解决问题,欢迎小伙伴们到社区分享经验,为他人答疑解惑。
本期问题目录:
1. 角色和场景为什么会一直往下掉落?
团结引擎:
2.URP 转为小游戏失败,Shader error in 'Hidden/Universal Render Pipeline/Sampling': 'FragBlit'
3.团结 1.2.0 TuanjiePackageManager.exe 启动失败
4.团结引擎 1.2.0 在 vs2022 中没有 TuanjieEditor 实例
5.团结引擎 1.2.0 无法导出鸿蒙包
技术支持:
我在 99 元可视化编程教程第七课中,按照前面视频一切顺利,但是到了给角色添加死亡取消摄像机跟随这个功能后,每次测试,我的角色和场景地形就会一直往下掉落,不知道为什么,重新看着视频做了好几次也是一样的问题,我在摄像机 CM vcam1 中的 Scene 添加 name 为 Player 类型为 Game Object,然后我把角色 Player 添加到 Value 中,但是 Ground check 是在 Player 下的,所以不知道是不是这个问题。
Shader error in 'Hidden/Universal Render Pipeline/Sampling': 'FragBlit': no matching 2 parameter function at /Work/ProjectLSX/skygame/Library/PackageCache/com.unity.render-pipelines.core@14.0.8/Runtime/Utilities/Blit.hlsl(119) (on gles)
自答:
安装 webgl 忘记重启项目了,没事了。
自答:
已解决,重装 hub 和团结就可以了。
答主 Pluto:
Visual Studio 目前还没有完全集成团结引擎的支持,直接在快捷菜单中点 Attach to Unity 会找不到 TuanjieEditor,需要 Attach to Unity Debugger,具体做法为:
1. 在 Visual Studio 中安装 Game development with Unity 扩展
引擎和 sdk 以及 jdk 都默认用 TuanjieHub 自带的,直接 Build,空场景都无法导出,报错如图 2,Export 去工程去最新的 DevEco Studio NEXT Developer Beta1,提示需要迁移,迁移之后发现自动导出的 TuanjiePlayerAbility.ts 文件中,编译都报错,其中 “$r” 方法是 ets 脚本才有的,默认的 TuanjiePlayerAbility 是 ts 脚本,手动修改后缀之后能编过,其次,脚本中 import tuanjie from 'libtuanjie.so'; 这一行,报错如下
答主 beiji:
图1:应该 node 版本需要更新到新的版本;
Q6.团结引擎各版本微信小游戏、鸿蒙平台相关 sdk 版本匹配问题
官方回答:
自答:
目前已经解决,记录一下方法:将 RTSP 流转换为 HLS 来实现在 WebGL 中的播放。
Unity 中的 UI Toolkit 中的 uss 里伪类选择器的一个问题。":active" 这个伪类选择,对很多元素都不起作用。比如 VisualElement 等,点击这些元素不会触发 :active 效果。只有按钮 Button 才有效果。
这是 Unity 的 bug 吗还是就是这么设计的,因为在 html 的 css 里,:active 伪类选择器可以适用于所有元素,哪怕是个 div 都可以设置 :active,点了也有效果。
Unity 版本:6000.0.4f1c1 P.S. 我看了下 6.x 每个新版本的更新日志,一直到 6000.0.10f1 好像都没有这方面的描述,应该是到 6000.0.10f1 都有问题。
平台:windows
相关代码:
.btn:hover {
-unity-background-image-tint-color: skyblue;
}
.btn:active {
-unity-background-image-tint-color: black;
color: red;
opacity: 0.2;
}
自己解决了。原来 Unity 里面故意这么设计的,估计是为了性能吧。如果自定义组件想要拥有能够触发 :active 伪类的能力,必须执行此逻辑:
this.AddManipulator(new Clickable(doClickFun));