返回顶部
首页 > 资讯 > 精选 >怎么利用Unity制作特写镜头
  • 759
分享到

怎么利用Unity制作特写镜头

2023-06-29 22:06:21 759人浏览 泡泡鱼
摘要

这篇文章主要介绍了怎么利用Unity制作特写镜头的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么利用Unity制作特写镜头文章都会有所收获,下面我们一起来看看吧。类似这种效果黑边的大小可以自行调整这里为了方便

这篇文章主要介绍了怎么利用Unity制作特写镜头的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么利用Unity制作特写镜头文章都会有所收获,下面我们一起来看看吧。

类似这种效果

黑边的大小可以自行调整

这里为了方便直接用两个Button绑定了方法,有需要自行调用方法

怎么利用Unity制作特写镜头

怎么利用Unity制作特写镜头

1.首先制作上下两层黑边

创建canvas然后在canvas上新建空物体,命名为CineMacloseUpShot

在上面新建脚本CinemaCloseUP

public class CinemaCloseUP : MonoBehaviour{    public float targetSizeInput;//上下黑条的宽度    public float showTime;    //进行缩放所需的时间    private RectTransfORM topBar, bottomBar;//声明上下两个 RectTransform,该组件在UI中控制UI大小、位置等参数    private float changeSizeAmount;//上下黑条变化量    private bool isActive;    //是否进行特写    private float targetSize;//    private void Awake()    {        //创建上方黑条,类型为图片        GameObject gameObject = new GameObject("topBar", typeof(Image));        gameObject.transform.SetParent(transform, false);//将之前的空物体设为父物体        gameObject.GetComponent<Image>().color = Color.black;//颜色设为黑色        topBar = gameObject.GetComponent<RectTransform>();//获取黑条图片的RectTransform                //将上方图片的锚点设为(0, 1)和(1, 1),其实就是父物体的左上角和右上角两个锚点        topBar.anchorMax = new Vector2(1, 1);        topBar.anchorMin = new Vector2(0, 1);        topBar.sizeDelta = new Vector2(0, 0);//默认图片大小为0        //创建下方黑条,类型为图片        gameObject = new GameObject("bottomBar", typeof(Image));        gameObject.transform.SetParent(transform, false);        gameObject.GetComponent<Image>().color = Color.black;        bottomBar = gameObject.GetComponent<RectTransform>();                //将下方图片的锚点设为(0, 0)和(1, 0),其实就是父物体的左下角和右下角两个锚点        bottomBar.anchorMax = new Vector2(1, 0);        bottomBar.anchorMin = new Vector2(0, 0);        bottomBar.sizeDelta = new Vector2(0, 0);//默认图片大小为0    }        private void Update()    {        if (isActive)        {            Vector2 sizeDelta = topBar.sizeDelta;//声明一个sizeDelta,并赋值为topBar.sizeDelta            sizeDelta.y += changeSizeAmount * Time.deltaTime;//sizeDelta的y方向持续增加/减小,其实就是图片的宽            //根据下面两个方法,显示为正,隐藏为负            if (changeSizeAmount > 0)//点击显示的情况            {                if (sizeDelta.y >= targetSize)//如果sizeDelta.y达到最大宽度                {                    sizeDelta.y = targetSize;//设置sizeDelta的宽度                    isActive = false;    //停止变化                }            }            else//点击隐藏的情况            {                if (sizeDelta.y <= targetSize)//如果sizeDelta.y达到最小宽度(0)                {                    sizeDelta.y = targetSize;//设置sizeDelta的最小宽度(0)                    isActive = false;//停止变化                }            }            //因为上下黑条对称,对上下黑条的宽度进行赋值            topBar.sizeDelta = sizeDelta;            bottomBar.sizeDelta = sizeDelta;        }    }    public void ShowBar()    {        targetSize = targetSizeInput;//点击显示,对宽度赋值(在Inspector面板中设定)        changeSizeAmount = (targetSize - topBar.sizeDelta.y) / showTime;//黑条的改变速率,这里为正数        isActive = true;//开始变化    }    public void Hide()    {        targetSize = 0f;//点击隐藏黑条宽度为0        changeSizeAmount = (targetSize - topBar.sizeDelta.y) / showTime;//黑条的改变速率,这里为负数        isActive = true;//开始变化    }}

然后设置合适的参数

分别为黑边的高度和黑边变化的时间

怎么利用Unity制作特写镜头

怎么利用Unity制作特写镜头

怎么利用Unity制作特写镜头

2.摄像头聚焦的效果

给摄像机搭载脚本CameraPos

public class CameraPos : MonoBehaviour{    public bool CamMove;//是否聚焦角色    public float distance;//距离角色的距离,可以用控制角色显示的大小    public float focusSpeed = 5f;//聚焦的速度    private Vector3 defaultPos;//摄像头默认位置    private Vector3 targetPos;//聚焦目标的位置    private bool isActive;//开始移动    private void Start()    {        defaultPos = transform.position;    }    private void Update()    {        if (isActive && CamMove)        {            transform.position = Vector3.Lerp(transform.position, targetPos, focusSpeed * Time.deltaTime);        }    }    public void FocusOn(GameObject target)//设置聚焦的目标    {        //注意这里的Z坐标不要大于0        targetPos = target.transform.position + new Vector3(0, 0, defaultPos.z + distance);        isActive = true;    }    public void ResetPos()//还原摄像头位置    {        targetPos = defaultPos;        isActive = true;    }}

设置合适参数

注意这里Distance计算后的Z坐标不要大于0,可以在代码中添加限制

怎么利用Unity制作特写镜头

显示效果:

怎么利用Unity制作特写镜头

关于“怎么利用Unity制作特写镜头”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么利用Unity制作特写镜头”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么利用Unity制作特写镜头

本文链接: https://lsjlt.com/news/326627.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么利用Unity制作特写镜头
    这篇文章主要介绍了怎么利用Unity制作特写镜头的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么利用Unity制作特写镜头文章都会有所收获,下面我们一起来看看吧。类似这种效果黑边的大小可以自行调整这里为了方便...
    99+
    2023-06-29
  • 利用Unity制作特写镜头的示例代码
    目录类似这种效果1.首先制作上下两层黑边2.摄像头聚焦的效果类似这种效果 黑边的大小可以自行调整 这里为了方便直接用两个Button绑定了方法,有需要自行调用方法 1.首先制作上...
    99+
    2024-04-02
  • 汕头网页制作模板怎么写
    1. 确定网站的主题和目标受众,并选择适合的颜色、字体、图片等元素来表现主题。2. 设计网站的布局,包括导航栏、页脚、侧边栏等,要考...
    99+
    2023-06-10
    汕头网页制作
  • 如何利用css3和jquery制作一款恶搞头像特效
    如何利用css3和jquery制作一款恶搞头像特效,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。这款实例中,一个头像在画面中跳...
    99+
    2024-04-02
  • ubuntu.22.04.1系统利用systemback制作镜像
    1.流程总览 前言:笔者并不确定ubuntu.22.04.1进行系统镜像制作的功能正不正常,但从实践结果:可以正常生成iso文件,并且能作为镜像加载进虚拟机来看,应该没什么问题。 并且移植好的镜像文件包含了当前的环境,系统文件内的图片,视频...
    99+
    2023-08-18
    ubuntu linux 服务器
  • 怎么在Unity中利用反射机制调用函数
    这期内容当中小编将会给大家带来有关怎么在Unity中利用反射机制调用函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。using System.Reflection;using Uni...
    99+
    2023-06-07
  • Unity利用XML制作一个简易的登录系统
    通过XML文件保存账号密码,存储到本地,不连接数据库的简易登录系统。 1.创建一个XML文件,设置一个初始的账号密码。 public void Creat() { ...
    99+
    2024-04-02
  • docker中怎么用build制作镜像
    在Docker中,可以使用`docker build`命令来制作镜像。 首先,在项目的根目录下创建一个名为`Dockerfile`的...
    99+
    2023-10-26
    docker
  • 怎么利用canvas画布制作逼真的水滴特效
    这篇文章主要为大家展示了“怎么利用canvas画布制作逼真的水滴特效”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么利用canvas画布制作逼真的水滴特效”这...
    99+
    2024-04-02
  • 利用python 制作词云特效详情
    目录一、特效预览二、程序原理三、程序源码什么是 ​词云​ ​词云​ 其实就是就是对网络文本中出现频率较高的〝关键词〞予以视觉上的突出,形成〝关键词云层〞或〝关键词...
    99+
    2024-04-02
  • docker制作mysql镜像并自动安装脚本怎么写
    本文小编为大家详细介绍“docker制作mysql镜像并自动安装脚本怎么写”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker制作mysql镜像并自动安装脚本怎么写”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-30
  • Python利用Tiler制作专属卡通头像和LOGO
    目录0 前言1 安装与贴图2 算法原理2.1 计算像素频率2.2 计算像素相对距离2.3 计算合适贴图3 配置功能4 使用:以圣诞老人为例0 前言 Tiler是一种使用各种其他较小图...
    99+
    2022-12-26
    Python Tiler卡通头像 Python 卡通头像 Python Tiler
  • CentOS7下怎么制作Docker镜像
    本篇内容介绍了“CentOS7下怎么制作Docker镜像”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Docker Image 的制作两种方...
    99+
    2023-06-28
  • Docker中怎么样制作镜像
    小编给大家分享一下Docker中怎么样制作镜像,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言以制作CentOS镜像为例,讲述对镜像自定义,打包以及推送的远程仓...
    99+
    2023-06-25
  • wps怎么制作红头文件
    要制作红头文件,可以使用WPS软件来完成。下面是具体的步骤:1. 打开WPS软件,进入“WPS文字”界面。2. 点击菜单栏上的“文件...
    99+
    2023-09-29
    wps
  • 怎么在Unity中利用LineRenderer绘制两点之间的直线
    这篇文章将为大家详细讲解有关怎么在Unity中利用LineRenderer绘制两点之间的直线,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。private LineRenderer&...
    99+
    2023-06-14
  • 利用Matlab制作一款狗头翻牌子小游戏
    目录0游戏效果1fig界面和背景板2狗狗牌子与胜利标志2.1狗狗牌子绘制2.2游戏胜利标签2.3鼠标点击牌子回调3游戏难度按钮组3.1按钮绘制3.2难度选择回调4游戏刷新模块4.1刷...
    99+
    2024-04-02
  • 利用Three.js制作一个新闻联播开头动画
    目录这里才是引言技术选型场景分解代码逻辑分解创建背景图和背景音乐背景图背景音乐在线体验地址:点我预览 代码地址:点我github 这里才是引言 五一居家隔离,闲着也是闲着,想着整个活...
    99+
    2024-04-02
  • 怎么快速制作Redis Docker镜像
    这篇文章主要讲解了“怎么快速制作Redis Docker镜像”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么快速制作Redis Docker镜像”吧!镜像制作镜像越小,部署起来越方便。在这...
    99+
    2023-06-15
  • 怎么制作云服务器镜像
    制作云服务器镜像的步骤如下:1. 首先,在云服务器上安装和配置所需的操作系统和软件。确保服务器上的所有设置和配置都符合您的需求。2....
    99+
    2023-09-23
    云服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作