You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity游戏角色翻转后变黑问题解决方案咨询

Unity角色翻转后完全变黑的问题解决

问题说明

制作游戏光源时,主角通过代码翻转后会完全变黑:

  • 未翻转状态:未翻转的正常角色
  • 翻转状态:翻转后变黑的角色

角色翻转实现代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class PlayerMove : MonoBehaviour
{
    public Vector2 moveVector; 
    public bool faceRight = true;

    void Update()
    {    
        Reflect();           
    }
    
    void Reflect()
    {
        if ((moveVector.x > 0 && !faceRight) || (moveVector.x < 0 && faceRight))
        {
            transform.localScale *= new Vector2(-1, 1);
            faceRight = !faceRight;
        }
    }
}

解决方法

方案1:替换翻转方式(推荐)

当前通过缩放X轴翻转角色会反转模型法线,导致Unity默认的背面剔除机制把朝向光源的面当成背面剔除,最终角色变黑。改用绕Y轴旋转实现翻转:

void Reflect()
{
    if ((moveVector.x > 0 && !faceRight) || (moveVector.x < 0 && faceRight))
    {
        transform.Rotate(0, 180, 0);
        faceRight = !faceRight;
    }
}

方案2:关闭背面剔除(不推荐,可能影响性能)

如果必须保留缩放翻转的方式,修改角色材质的Shader设置:

  • 选中角色Mesh Renderer组件中的材质
  • 在Inspector面板找到Shader的Cull选项,设置为Off(关闭背面剔除)
  • 或切换到支持双面渲染的Shader模式(如Transparent)

方案3:检查光照相关组件

  • 若角色使用了Light Probe Proxy Volume,暂时禁用该组件测试是否恢复正常,排查探针采样异常问题
  • 检查场景光源角度,确保翻转后角色不会完全背离主光源,必要时添加补光

内容的提问来源于stack exchange,提问作者ART33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:40:09