unity动画_UI动画案例 c#

这篇具有很好参考价值的文章主要介绍了unity动画_UI动画案例 c#。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先我们打开一个项目

unityui动画提示,unity,ui,游戏引擎

在这个初始界面我们需要做一些准备工作

创建基础通用包

unityui动画提示,unity,ui,游戏引擎

在场景上创建一个Cube

unityui动画提示,unity,ui,游戏引擎

选中Cube 在Window下点击Animation拖拽至运行窗口

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

点击创建

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

保存后

unityui动画提示,unity,ui,游戏引擎

这个操作是给Cube添加了一个组件

unityui动画提示,unity,ui,游戏引擎

对Cube_添加一个Position动画

unityui动画提示,unity,ui,游戏引擎

设置几个帧位置的坐标(x,y,z)值

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

点击运行测试

unityui动画提示,unity,ui,游戏引擎

再创建一个Animator

unityui动画提示,unity,ui,游戏引擎

Animator(动画控制器):控制游戏对象的动画状态机,允许以交互式和可编程控制对象的动画

Animation(动画剪辑)  :剪辑动画数据

unityui动画提示,unity,ui,游戏引擎

Animation Controller : 是通过若干个状态组成的

unityui动画提示,unity,ui,游戏引擎

 Animation Clip 具体动画 :具体动画 用于创建、定义和管理游戏对象动画的一种资源 

Motion 绑定动作 :将创建的动画绑定在 Motion中

unityui动画提示,unity,ui,游戏引擎

Animation结构:

unityui动画提示,unity,ui,游戏引擎

引入结束

接下来我们开始做UI动画:

我们先将Cube删除

在UI文件夹的Images添加一个图片背景

unityui动画提示,unity,ui,游戏引擎

创建一个画布

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

重置Canvas位置 并调成世界坐标

unityui动画提示,unity,ui,游戏引擎

在Canvas下创建一个Image 并调成不显示 作为一个主面板

unityui动画提示,unity,ui,游戏引擎

修改长和宽并调成不显示状态

unityui动画提示,unity,ui,游戏引擎

改名为MainPanel 作为主面板

unityui动画提示,unity,ui,游戏引擎

在主面板下创建一个Image

unityui动画提示,unity,ui,游戏引擎

导入外边框资源  并设置成精灵

unityui动画提示,unity,ui,游戏引擎

 设置固定尺寸

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

再在Contentimage下创建按钮Button

unityui动画提示,unity,ui,游戏引擎

我们再多次创建button设置背景和字体颜色的时候 可以copy设置好的组件复制即可

unityui动画提示,unity,ui,游戏引擎

粘贴到新的button上

unityui动画提示,unity,ui,游戏引擎

ctrl + d复制五个并修改名字

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

copy

unityui动画提示,unity,ui,游戏引擎

修改图片

unityui动画提示,unity,ui,游戏引擎

接下来我们进入设置UI动画部分

首先给MainPanel增加 Animator动画控制器 

unityui动画提示,unity,ui,游戏引擎

这时Animator 需要 绑定Animator Cotroller但是现在我们还没有Animator Cotroller需要自己创建

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

改名MainPanel

unityui动画提示,unity,ui,游戏引擎

此时就可以把刚创建的Animator Controller 绑定MainPanel

unityui动画提示,unity,ui,游戏引擎

双击Animator Controller打开

unityui动画提示,unity,ui,游戏引擎

创建一个打开状态

unityui动画提示,unity,ui,游戏引擎

我们发现新创建的Opened状态 的 Motion并没有绑定动画,这时需要我们创建一个Animation

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

现在就可以把动画绑定在Opened状态的Motion上了

unityui动画提示,unity,ui,游戏引擎

接下来制作Opened动画

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

作为主菜单只需要一个位置

unityui动画提示,unity,ui,游戏引擎

Opened状态做好了,接下来我们做Closed状态

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

对关闭状态添加一个位置

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

设置好后我们接下来做一个切换

在Animator中我们可以看出运行后是一个打开主菜单的UI页面

unityui动画提示,unity,ui,游戏引擎

建立连接线——过渡

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

再建立往返连接线

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

运行项目我们可以看到主菜单在循环做打开和关闭的两个状态的转换

unityui动画提示,unity,ui,游戏引擎

点击Animator的Opened进入Closed的连接线在右侧我们可以添加一个限制条件

但是我们在添加条件前需要创建参数

unityui动画提示,unity,ui,游戏引擎

我们添加一个bool类型的参数作为一个开启关闭的开关

unityui动画提示,unity,ui,游戏引擎改名IsOpen

unityui动画提示,unity,ui,游戏引擎

有了参数之后我们就可以在连接线(过渡)上添加条件了

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

修改条件限制

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

取消延迟播放时间

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

快速创建 第二个菜单

选中SecondPanel 点击Window下的Animation的create

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

接下来再添加一个Second_Closed

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

对Second_Opened增加一个位置性质

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

同样方法设置第二个菜单的关闭状态

unityui动画提示,unity,ui,游戏引擎

Animation做好之后做Animator部分

首先添加一个IsOpened参数

unityui动画提示,unity,ui,游戏引擎

接下来连接线做过渡

unityui动画提示,unity,ui,游戏引擎

设置线

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

做好两个菜单的动画和动画控制器之后   创建一个脚本

unityui动画提示,unity,ui,游戏引擎

脚本名称为 AnimationParameteController动画参数控制器

unityui动画提示,unity,ui,游戏引擎

using UnityEngine;
public class AnimationParameteController : MonoBehaviour{
    public Animator main_Ani;
    public Animator second_Ani;
    void Start()
    {
        
    }
    void Update()
    {
        
    }
    public void OnClick_OpenSecond() {
        if (main_Ani == null || second_Ani == null)
            return;
        main_Ani.SetBool("IsOpen", false);
        second_Ani.SetBool("IsOpen", true);
    }
    public void OnClick_SecondBack()
    {
        if (main_Ani == null || second_Ani == null)
            return;
        main_Ani.SetBool("IsOpen", true);
        second_Ani.SetBool("IsOpen", false);
    }
}

在unity场景中创建一个空物体挂载代码 

unityui动画提示,unity,ui,游戏引擎

命名为AnimationParameteController

unityui动画提示,unity,ui,游戏引擎

接下来绑定UI菜单

unityui动画提示,unity,ui,游戏引擎

再绑定事件 选择Second_Panel 下的 Btn1 Open设置成函数中的打开

unityui动画提示,unity,ui,游戏引擎

选择事件的方法

unityui动画提示,unity,ui,游戏引擎

同样方法做Second_Opend的 Exitbutton按钮

unityui动画提示,unity,ui,游戏引擎

打开MainMenu_Opend的开启状态

unityui动画提示,unity,ui,游戏引擎

运行即可点击按键启动UI动画

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

接下来我们做左侧的旋转UI动画

我们的下面三个菜单 可以做一个旋转Animator

unityui动画提示,unity,ui,游戏引擎

但是需要注意:如果用同一个Animator也就是同一个动画器的话需要让子类名字都必须相同

unityui动画提示,unity,ui,游戏引擎

我们开始制作这个动画

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

再添加一个Item_Closed.anim的动画

unityui动画提示,unity,ui,游戏引擎

我们先将除了Item的两个第三菜单隐藏

unityui动画提示,unity,ui,游戏引擎

改变它的y轴我们让它旋转但却发现不是我们想要的单侧旋转而是中心旋转

unityui动画提示,unity,ui,游戏引擎

我们通过修改子物体x的位置作为轴使父物体按子物体中心旋转

unityui动画提示,unity,ui,游戏引擎

修改父物体旋转角度即可看到完成了开门式旋转

unityui动画提示,unity,ui,游戏引擎

接下来我们对Item_Opend做具体动画Animation

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

删除role和music复制两个Item 进行绑定 主菜单的剩下三个按钮事件

unityui动画提示,unity,ui,游戏引擎

最后完善添加隐藏   选择面板下的Image属性的内容 关闭时将内容隐藏 如果没有image关闭后 animator会失效

unityui动画提示,unity,ui,游戏引擎

添加后取消勾选

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

unityui动画提示,unity,ui,游戏引擎

End文章来源地址https://www.toymoban.com/news/detail-774992.html

到了这里,关于unity动画_UI动画案例 c#的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unity 使用 Dotween 的 Sequence 制作UI动画并且可重复利用

    目录 前言 一、DOTween是什么? 二、使用步骤 1.导入DOTween 2.配置DOTween 3.使用代码编写动画 4.代码API解释 总结 DOTween可以制作简易的UI动画,避免创建大量的Animator,本篇文章介绍一下我制作UI动画时的一些技巧 效果展示   DOTween是UnityAssetStore中一个免费的插件,用于创建简单的

    2024年02月08日
    浏览(52)
  • Unity中的声音(声音开关+动画事件播放声音+控制声音大小UI)

            声音组件(一个scene中只能有一个Audio Listener,位于Camera)         Audio Source 理解为 “嘴巴” Unity中支持的音频格式 效果 :点击背景音乐暂停,再点击音乐继续。 步骤 (1)创建UI—Toggle(切换) 与图片上对应:       Label 文字       Background 白色框框    

    2024年02月10日
    浏览(42)
  • Unity UI适配规则和对热门游戏适配策略的拆解

    本文会介绍一些关于UI适配的基础概念,并且统计了市面上常见的设备的分辨率的情况。同时通过拆解目前市面上较为成功的两款休闲游戏Royal Match和Monopoly GO(两款均为近期游戏付费榜前几的游戏),大致推断出他们的适配策略,以供学习和参考。 设计分辨率: 设计分辨率是指

    2024年03月14日
    浏览(68)
  • 【Unity小技巧】手戳一个简单易用的游戏UI框架(附源码)

    参考原视频链接: 【视频】:https://www.bilibili.com/video/BV1zT411b7L3/ 注意 :本文为学习笔记记录,推荐支持原作者,去看原视频自己手敲代码理解更加深入 开发一款游戏美术成本是极其高昂的,以我们常见的宣传片CG为例,动辄就要成百上千万的价格,因此这种美术物料一般只

    2024年02月11日
    浏览(52)
  • 【Unity游戏开发基础】如何做可以调整音量的UI滚动条组件

    游戏的设置列表中,调整游戏声音大小的选项是必备的,如何实现拖动滚动条后音量相应改变大小呢?这里介绍一下相关的脚本和步骤 首先,新建一个调整音量的脚本,名叫SetVolume,把预置的Update方法和Start方法删除。 然后,这个脚本需要挂载在滚动元素的Slider组件下。这个

    2024年02月03日
    浏览(56)
  • Unity3D学习之UI系统——用NGUI制作游戏登陆界面

    会省略一些东西,可以看我的NGUI的博客 设置UI分辨率自适应 设置Root 的层级 和摄像机渲染的层级为UI 主摄像机不渲染UI 一般都是美术给一个示意图,然后按示意图上拼面板 3.1.1 制作图集 制作两个新图集 3.1.2 拖面板 检查DrawCall 3.1.3 面板基类 创建面板基类, 首先设置成单例

    2024年02月19日
    浏览(75)
  • 「Unity入门」Step by Step的太空清理垃圾游戏Part 3:飞船移动与UI

    完成基础的太空场景后,我们就可以来实现一些可交互的操作了。在这个游戏中主要可交互的操作有控制飞船飞行方向和点按垃圾收集。在游戏开始后,飞船会以恒定的速度向前方移动,用户则可以摇杆来控制飞船左右、上下转动。通过除此之外,还有切换前后镜头、加速等

    2024年02月01日
    浏览(51)
  • 【游戏开发小技】Unity通过UI全屏图来模糊场景画面(Shader | 模糊 | 滤镜 | Blur)

    一、前言 嗨,大家好,我是新发。 以前我写文章都是很长很长,接下来我会尝试用新的方式来写博客,尽量简短,以实用为主。同时也是作为自己零碎的一些记录,方便查阅。 本文我要说的是在 Unity 中通过 UI 全屏图来模糊场景画面的效果。 二、效果演示 这是没用模糊效果

    2024年02月05日
    浏览(41)
  • 游戏引擎之高级动画技术

    当我们拥有各类动画素材(clips)时,要将它们融合起来成为一套完整的动画。 最经典的例子就是从走的动画自然的过渡到跑的动画。 1.1 线性插值 不同于上节课的LERP(同一个clip内不同pose之间),动画融合需要的线性插值是不同clip之间的插值。 以走-跑为例,可以用速度来

    2024年04月14日
    浏览(70)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包