unity限制相机可移动区域(box collider)

这篇具有很好参考价值的文章主要介绍了unity限制相机可移动区域(box collider)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.创建一个空对象并命名为box(什么名字都可以 但要与代码中的一致)
2.选中box在属性面板点击add component添加一个box collider组件
unity限制相机移动区域,unity,unity,游戏引擎,c#

3.把box collider的大小设置到你想限制的区域范围大小(我直接设置成场景的大小)
unity限制相机移动区域,unity,unity,游戏引擎,c#

3.在相机脚本定义一个变量box(用于选中)刚刚创建的box对象

public GameObject box;

4.在相机的脚本添加限制位置的函数

    private void limitation()
    {
        if (box)
        {
            Vector3 boxSize= box.GetComponent<BoxCollider>().size;
            Vector3 boxCenter= box.GetComponent<BoxCollider>().center;
            Vector3 min= box.transform.position + boxCenter- boxSize* 0.5f;
            Vector3 max= box.transform.position + boxCenter+ boxSize* 0.5f;

            Vector3 cameraP = transform.position;

            if (cameraP.x < min.x)
            {
                cameraP.x = min.x;
            }
            else if (cameraP.x > max.x)
            {
                cameraP.x = max.x;
            }

            if (cameraP.y < min.y)
            {
                cameraP.y = min.y;
            }
            else if (cameraP.y > max.y)
            {
                cameraP.y = max.y;
            }

            if (cameraP.z < min.z)
            {
                cameraP.z = min.z;
            }
            else if (cameraP.z > max.z)
            {
                cameraP.z = max.z;
            }

            transform.position = cameraP ;
        }

    }

5.把limitation函数放在相机更新的Update函数中
6.保存脚本 在编辑器中把box添加到脚本创建的变量中
unity限制相机移动区域,unity,unity,游戏引擎,c#

注意:脚本是挂载在摄像机上的,代码保存后我们看到脚本上多了一个box属性(通过public GameObject box;)创建的,然后把场景中的box对象拖进去

7.保存运行 相机就只能在限制的区域内移动

完整代码:文章来源地址https://www.toymoban.com/news/detail-716646.html

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

public class cameraHandle : MonoBehaviour
{

    public GameObject box;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        limitation();
    }
      private void limitation()
    {
        if (box)
        {
            Vector3 boxSize= box.GetComponent<BoxCollider>().size;
            Vector3 boxCenter= box.GetComponent<BoxCollider>().center;
            Vector3 min= box.transform.position + boxCenter- boxSize* 0.5f;
            Vector3 max= box.transform.position + boxCenter+ boxSize* 0.5f;

            Vector3 cameraP = transform.position;

            if (cameraP.x < min.x)
            {
                cameraP.x = min.x;
            }
            else if (cameraP.x > max.x)
            {
                cameraP.x = max.x;
            }

            if (cameraP.y < min.y)
            {
                cameraP.y = min.y;
            }
            else if (cameraP.y > max.y)
            {
                cameraP.y = max.y;
            }

            if (cameraP.z < min.z)
            {
                cameraP.z = min.z;
            }
            else if (cameraP.z > max.z)
            {
                cameraP.z = max.z;
            }

            transform.position = cameraP ;
        }

    }

到了这里,关于unity限制相机可移动区域(box collider)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity2D】相机移动以及设置相机边界

    添加相机时,首先需要在unity中添加 Cinemachine 包 第一次使用这个包时,需要在Package Manager中搜索并安装  安装Camera Mechine包后,添加2D Camera 设置跟随对象为Ruby (从Hierarchy中将Ruby拖动到Follow中)   同时,由于世界是有边界的,要为相机设置边界 通过添加Extension为相机添加

    2024年02月16日
    浏览(31)
  • Unity虚拟相机Cinemachine-实现相机自动移动到指定位置

    介绍两种方法, 第一种使用虚拟相机自带DollyCart和DollyTrack进行设置; 第二种使用时间线Timeline和DollyTrack进行设置 1.首先添加图中三个虚拟相机 2.点击 DollyTrack,添加点,设置轨道 3.调整点的位置,使轨道在相机移动的起点和终点保持平滑 4.设置Dolly Cart,将轨道拖拽到Dolly

    2024年01月25日
    浏览(36)
  • Unity_相机灵活跟随角色移动

    每日一句:慢慢改变,慢慢成长,慢慢适应,慢慢优秀 目录 角色旋转、移动类 相机跟随人物移动类 /* 旋转刚体,位移的动画驱动移动*/

    2024年02月08日
    浏览(31)
  • Unity控制相机旋转、移动、缩放等功能

    提示: 该脚本允许你以指定的速度和角度围绕模型进行相机旋转,并可以控制相机的移动和缩放 将该脚本添加到一个游戏对象上,并将其作为主摄像机。 1、在Unity编辑器中,你可以在脚本的参数变量部分调整相机的速度、缩放和移动等设置。根据需求,修改各个参数的值。

    2024年02月04日
    浏览(39)
  • unity cinemachine相机 (案例 跟随角色移动)

    会在maincamera中生成一个组件cinemachineBrain 只能通过虚拟相机操控 主相机 在固定的地方 默认的模式 20 把playere拖进来 把playere拖进来 body改为世界坐标

    2024年04月27日
    浏览(39)
  • Unity3D制作一个会移动的方块(还不会移动照相机)

    学习 Unity3D 这么久了,如果你还不会制作一个按下 WASD 就可以移动的方块的话,那么你的学习将没有一点成就感,我学习的时候,我决定 先学习移动 ,这样我就会对 Unity 更加感兴趣,学习起来的动力会更为充足 先创建一个项目,名为move,如果你手头有一个随便乱用的项目

    2024年02月14日
    浏览(36)
  • [游戏开发][Unity] TPS射击游戏相机实现

    滑屏控制 角色的横向旋转 相机的纵向旋转(区别于横向旋转) 相机贴墙拉近(不能穿墙) 相机观察旋转(角色不转相机转用于观察四周) 开火按钮和旋转屏幕功能共存(边开枪边转向瞄准) 市面上的TPS射击游戏基本上有两种实现射击瞄准 方案一:以枪口射击方向为基准,相机跟着人

    2024年02月16日
    浏览(30)
  • Unity单个物体绑定多个相机在轨道上移动,录制不同角度视频

    打开包管理器 下载cinemachine插件 使用dolly track 创建轨道 右侧可以删减关键点,注意调整y坐标 把前面的轨道拖到path中,注意这里的 speed要设定不为0才会动 根据需求设定,Follow这个设为cart才跟着走(Dolly Enable勾上),Look At设定为Cart才会让相机跟着轨迹的变化视角转换(设定

    2024年04月15日
    浏览(35)
  • Unity第三人称如何让人物始终朝向相机方向移动

    不知道如何制作简易第三人称相机的同学可以看我的这篇文章:Unity如何实现第三人称相机跟随 我们在开发第三人称游戏过程中很容易遇到:我们的玩家角色,他面对北方,背后有一台摄像机,正巧也是面对北方。现在,他向右转90度,面对东方。此时如果让他向前走,那么

    2024年02月06日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包