Common Issues

Textures, rendering, visuals

⛔ 问题:照片不显示发光或其他渲染的相机效果,或不渲染任何内容。或出现错误:"RenderTexture.Create failed: colorFormat & depthStencilFormat cannot both be none"。 ✅ 解决方案1:找到Scripts → PhotoSettings可脚本化对象,从列表中选择纹理格式,例如DefaultHDR用于发光效果。

✅ 解决方案2(通过代码):打开PhotoController.cs → MakeScrenshot()。替换以下行:

targetTexture = RenderTexture.GetTemporary(photoSettings.resWidth, photoSettings.resHeight);

>

targetTexture = RenderTexture.GetTemporary(photoSettings.resWidth, photoSettings.resHeight, 24, RenderTextureFormat.DefaultHDR);

或选择适合您项目的其他纹理格式。所有可能格式的列表arrow-up-right

UI, canvas, interface elements

⛔ 问题:按钮/照片不响应输入。PhotoController预制体包含其Canvas和UI元素,现有元素可能会与它们重叠,反之亦然。 ✅ 解决方案:解包预制体并将UICanvas内容移动到现有Canvas,或反之。

Input system

Both input systems support

⛔ 问题:如果您使用新输入系统,可能会出现错误:"InvalidOperationException: You are trying to read Input using the UnityEngine…"。 ✅ 解决方案:在InputController组件中将inputSystemType设置为New。打开Edit → Project Settings → Player → Configuration,并将Active Input Handling设置为"both"。通过Package Manager安装InputSystem。将EventSystem → StandaloneInputModule替换为InputSystemUIInputModule。

Demo scene

⛔ 问题:测试场景中的材质和纹理未正确加载。 ✅ 解决方案:示例对象的所有材质和纹理都存储在Materials文件夹中。材质默认使用"Standard"着色器。对于URP项目,将着色器更改为"URP/Lit"或任何与您的渲染管线兼容的适当着色器。

Object Recognition

⛔ 问题:相机难以准确检测对象,特别是在处理细节或复杂网格时。 ✅ 解决方案1(更精确地识别一个对象):增加所需对象的碰撞器触发器,使其不与其他对象重叠并且更容易识别。减小Photo Settings可脚本化对象中的Sphere Radius值。较小的值会产生更细的射线,使对象识别更精确。此外,您可以自定义PhotoController.cs中RaycastCheck方法的行为,以更好地满足您的特定需求。

✅ 解决方案2(更精确地识别一个对象):为干扰对象分配一个特殊图层,并在PhotoSettings可脚本化对象的Raycast Layers中禁用它进行识别。或者为可识别对象分配一个特殊图层,并禁用所有其他图层进行识别。 ✅ 解决方案3(识别所有对象并在其中查找一个):在PhotoSettings中使用Multiple Objects模式,设置更大的Sphere Radius和multiplayerPrecision值以准确识别每个可见对象。检查照片是否包含所需对象。

Split Screen

⛔ 问题:在分屏设置中,每个玩家都有自己的照片相机,快照可能只捕获屏幕的四分之一或一半,而不是单个相机的完整图像。 ✅ 解决方案:在拍照前临时将当前相机的视口设置为全屏(0,0,1,1)(也许还要在捕捉时刻临时禁用所有其他相机),然后再恢复。像这样:

Last updated