【问题标题】:Unity3D Camera Switching on triggerUnity3D Camera Switching on trigger
【发布时间】:2017-11-21 09:40:08
【问题描述】:

非常感谢能帮助我在我的游戏中切换摄像头。关键是游戏开始,玩家看到球(这是一种基本的滚球游戏),开始向上移动,他们需要再次向上但在另一个方向,所以我需要相机成为他们看到他们在做什么。我得到了正确的相机位置,但我不知道如何编写脚本以使其正常工作。我让它工作了一次,但我搞砸了一些东西,无法让它再次工作。

这是迄今为止的代码,我从搜索中汇总:

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

public class CameraSwitch : MonoBehaviour
{
    public Camera front_camera;//assign your main camera here
    public Camera back_camera;//assign your top camera here

    void Start()
    {
        front_camera.enabled = true;
        back_camera.enabled = false;
    }
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.name == "Pickup")
        {
            front_camera.enabled = false;
            back_camera.enabled = true;
        }
        else if (other.gameObject.name == "Ground")
        {
            front_camera.enabled = true;
            back_camera.enabled = false;
        }
    }
}

【问题讨论】:

  • “我不知道如何编写脚本使其正常工作”。现在怎么样了?
  • 你确定碰撞检测的所有先决条件都满足了吗? (至少一个对象上的刚体,两个上的碰撞器,一个带有isTrigger 的碰撞器,以及所需碰撞器上的脚本)
  • 两个摄像头都有主摄像头标签吗?
  • @umairM 它不工作
  • @Hellium 是的,我都做了。小球需要拾取/碰撞以触发相机开关的小拾取物体,但它没有这样做。

标签: c# unity3d camera


【解决方案1】:

您的脚本似乎禁用(可能是它附加到相机)因此,您遇到了问题。确保 CameraSwitch 没有禁用,否则代码没有问题。

或者,您可以将相机切换脚本附加到球上,并放置两个分别覆盖前后相机区域的碰撞器。像这样的东西。

【讨论】:

    【解决方案2】:

    我尝试了 Unity 脚本手册 中的代码,并且运行良好。

    请查看此Camera.main Scripting Reference

    【讨论】:

    • 我希望在碰撞时触发相机切换,而不是必须按下按钮并触发它。谢谢你!
    猜你喜欢
    • 2019-05-19
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 2021-04-08
    • 2014-02-12
    • 2017-01-17
    相关资源
    最近更新 更多