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

Unity VR开发求助:进入传送门时重置相机Z轴与X轴旋转

传送门触发时重置相机旋转的实现方案

核心功能

玩家进入传送门触发区域时,自动重置VR相机的X轴(俯仰)和Z轴(滚转)旋转角度,保留Y轴(转向)角度,解决传送后相机姿态异常问题。

完整代码

using UnityEngine;

public class PortalCameraReset : MonoBehaviour
{
    // 拖拽赋值你的VR相机(例如CameraRig下的CenterEyeAnchor)
    public Transform vrCamera;

    private void OnTriggerEnter(Collider other)
    {
        // 仅响应玩家触发,根据你的玩家标签调整
        if (other.CompareTag("Player"))
        {
            ResetCameraOrientation();
        }
    }

    private void ResetCameraOrientation()
    {
        // 保留当前Y轴转向,重置X、Z轴旋转为0
        float yRotation = vrCamera.eulerAngles.y;
        vrCamera.eulerAngles = new Vector3(0f, yRotation, 0f);
    }
}

部署步骤

  1. 将脚本挂到你的BasicPortal游戏对象上
  2. 在Inspector面板中,把VR相机对象拖到vrCamera参数栏
  3. 确认BasicPortal的Collider已勾选Is Trigger(从你的截图看已配置,无需改动)
  4. 确保玩家对象的标签是Player,如果不是,修改脚本中CompareTag的参数值

额外说明

  • 如果相机是嵌套在Player下的局部旋转,可将eulerAngles替换为localEulerAngles
  • 测试时只要玩家进入传送门触发范围,相机的俯仰和滚转会立刻回到水平状态,转向保持不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:24:19