unity——Preject3——开始界面拼面板
目录
1.创建panel,去掉panel自带的image,自己加一个image,使用锚点分配好
2.锚点(快捷键点击后 ALT+Shift)
锚点是什么?
锚点的实际例子
例子1:固定在父容器的中心
例子2:对齐到父容器的左下角
例子3:拉伸以填充父容器
例子4:固定在父容器的右侧,高度随父容器变化
例子5:固定在父容器的顶部,宽度随父容器变化
总结
3.开始面板动作设计
4.Animator Controller认识
Animator Controller 的主要功能
如何使用 Animator Controller
实际应用示例
5.代码部分
6.启动程序Main
1.创建panel,去掉panel自带的image,自己加一个image,使用锚点分配好

2.锚点(快捷键点击后 ALT+Shift)

锚点是什么?
锚点就像是UI元素的“固定点”,决定了UI元素和它的父容器(比如一个面板或画布)之间的关系。你可以把锚点想象成一根“橡皮筋”,一头固定在父容器的某个位置,另一头拉着UI元素。
-
如果父容器的大小变了(比如屏幕尺寸变了),UI元素会根据锚点的设置,自动调整自己的位置或大小。
-
锚点的作用就是告诉UI元素:“你要跟着父容器的哪一部分动?”
锚点的实际例子
例子1:固定在父容器的中心
-
场景:你有一个按钮,希望它永远在屏幕的正中心,不管屏幕大小怎么变。
-
锚点设置:把锚点设置为父容器的中心(
(0.5, 0.5))。 -
效果:按钮会一直保持在屏幕中心,不会因为屏幕变大或变小而偏移。
例子2:对齐到父容器的左下角
-
场景:你有一个血条,希望它永远在屏幕的左下角。
-
锚点设置:把锚点设置为父容器的左下角(
(0, 0))。 -
效果:血条会一直贴在屏幕的左下角,无论屏幕怎么变化。
例子3:拉伸以填充父容器
-
场景:你有一个背景图,希望它总是填满整个屏幕。
-
锚点设置:把锚点设置为水平和垂直方向都拉伸(
(0, 0)到(1, 1))。 -
效果:背景图会随着屏幕大小变化,自动拉伸或缩小,始终填满整个屏幕。
例子4:固定在父容器的右侧,高度随父容器变化
-
场景:你有一个侧边栏,希望它总是贴在屏幕的右侧,高度和屏幕一样高。
-
锚点设置:
-
水平方向:锚点固定在右侧(
(1, 1))。 -
垂直方向:锚点设置为上下拉伸(
(0, 1))。
-
-
效果:侧边栏会一直贴在屏幕右侧,高度会随着屏幕高度变化而自动调整。
例子5:固定在父容器的顶部,宽度随父容器变化
-
场景:你有一个标题栏,希望它总是贴在屏幕顶部,宽度和屏幕一样宽。
-
锚点设置:
-
水平方向:锚点设置为左右拉伸(
(0, 1))。 -
垂直方向:锚点固定在顶部(
(0.5, 1))。
-
-
效果:标题栏会一直贴在屏幕顶部,宽度会随着屏幕宽度变化而自动调整。
总结
锚点就是告诉UI元素:“你要跟着父容器的哪一部分动?”
-
如果你想固定位置,就把锚点设为一个点(比如中心、角落)。
-
如果你想拉伸或填充,就把锚点设为一个范围(比如左右拉伸、上下拉伸)。
-
锚点的设置可以让你轻松实现UI的自适应布局,不用手动调整位置和大小。
3.开始面板动作设计
在Resources文件夹下创建一个动画(用于管理和控制动画状态机的工具)
选择对应的动作素材拖到动画机中

拖到人物中

4.Animator Controller认识
Animator Controller 的主要功能
-
动画状态机:
-
Animator Controller 使用状态机(State Machine)来管理动画状态。每个状态代表一个动画片段(如“待机”、“行走”、“奔跑”)。
-
你可以在状态之间定义过渡(Transitions),并设置条件来控制何时从一个状态切换到另一个状态。
-
-
参数(Parameters):
-
Animator Controller 允许你定义参数(如布尔值、浮点数、整数或触发器),这些参数可以用来控制状态之间的过渡。
-
例如,你可以使用一个布尔参数
IsWalking来控制角色是否从“待机”状态切换到“行走”状态。
-
-
动画层(Layers):
-
Animator Controller 支持多层动画,允许你在不同的层上播放不同的动画。例如,你可以在基础层上播放角色的移动动画,同时在另一个层上播放上半身的射击动画。
-
-
混合树(Blend Trees):
-
混合树允许你根据参数值(如速度或方向)在多个动画之间平滑过渡。例如,你可以根据角色的移动速度在“行走”和“奔跑”动画之间混合。
-
如何使用 Animator Controller
-
创建 Animator Controller:
-
在Unity中,右键点击项目窗口,选择
Create > Animator Controller。 -
将创建的 Animator Controller 分配给游戏对象的
Animator组件。
-
-
添加动画状态:
-
打开 Animator 窗口(
Window > Animation > Animator)。 -
将动画片段拖放到 Animator 窗口中,创建动画状态。
-
-
设置过渡和条件:
-
右键点击一个状态,选择
Make Transition,然后连接到另一个状态。 -
在过渡线上设置条件(如参数值),以控制何时触发过渡。
-
-
控制动画:
-
在脚本中,你可以通过
Animator组件的 API 来设置参数值,从而控制动画的播放和切换。例如:csharp
复制
Animator animator = GetComponent<Animator>(); animator.SetBool("IsWalking", true);
-
实际应用示例
-
角色动画:控制角色的待机、行走、奔跑、跳跃等动画。
-
物体动画:控制门的开关、平台的移动等。
-
复杂动画逻辑:通过多层动画和混合树实现复杂的动画行为,如角色在移动时同时进行攻击。
总之,Animator Controller 是Unity中用于管理动画的核心工具,通过状态机、参数和过渡,你可以实现复杂的动画逻辑和交互。
5.代码部分
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class BeginPanel : BasePanel
{public Button btnStart;public Button btnSetting;public Button btnAbout;public Button btnQuit;public override void Init(){btnStart.onClick.AddListener(() =>{//隐藏自己 显示选角面板});btnSetting.onClick.AddListener(() =>{//显示设置界面});btnAbout.onClick.AddListener(() =>{//后续自己添加功能});btnQuit.onClick.AddListener(() =>{Application.Quit();});}
}
6.启动程序Main
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Main : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){UIManager.Instance.ShowPanel<BeginPanel>();}// Update is called once per framevoid Update(){}
}
相关文章:
unity——Preject3——开始界面拼面板
目录 1.创建panel,去掉panel自带的image,自己加一个image,使用锚点分配好 2.锚点(快捷键点击后 ALTShift) 锚点是什么? 锚点的实际例子 例子1:固定在父容器的中心 例子2:对齐到…...
【达梦数据库(Oracle模式)】如何将视图中的数据导出
在某些情况下,我们需要将生产环境某个模式下的数据导入到开发电脑中,因为正式环境无法连接外网数据。 方式一:将视图查询出来,然后右键导出所有查询结果(不推荐) 优点:方便快捷 缺点࿱…...
GB44495-2024 汽车整车信息安全技术要求 - V2X部分前置要求
背景 GB 44495-2024《汽车整车信息安全技术要求》中关于V2X(车与外界通信)的部分,主要关注于通信安全要求,旨在确保车辆在与外部设备进行数据交互时的信息安全。其测试大致可分为消息层(数据无异常)、应用…...
FastAPI 应用的容器化与 Docker 部署:提升性能与可扩展性
FastAPI 应用的容器化与 Docker 部署:提升性能与可扩展性 目录 🐳 使用 Docker 容器化 FastAPI 应用⚙️ 使用 Docker Compose 管理多个服务的部署🚀 在 Docker 容器中部署与运行 FastAPI 应用 1. 🐳 使用 Docker 容器化 FastAPI…...
QT入门的一些吐槽
QT入门的一些吐槽 看了网上的一些介绍QT的课程,看了一些讲述qt的书籍,然而再想自己做一个项目的时候,却发现我好像什么都不会,QT对我来说就是一个黑盒子。 我只会: 使用QT Creator创建一个项目,再UI文件中…...
4.Spring AI Prompt:与大模型进行有效沟通
1.什么是提示词 在人工智能领域,提示词(Prompt)扮演着至关重要的角色,它宛如一把精准的钥匙,为 AI 大模型开启理解之门。作为向模型输入的关键信息或引导性语句,提示词能够助力模型迅速洞悉问题需求&#…...
深入内核讲明白Android Binder【二】
深入内核讲明白Android Binder【二】 前言一、Binder通信内核源码整体思路概述1. 客户端向服务端发送数据流程概述1.1 binder_ref1.2 binder_node1.3 binder_proc1.4 binder_thread 2. 服务端的binder_node是什么时候被创建的呢?2.1 Binder驱动程序为服务创建binder…...
Python基于Django的图像去雾算法研究和系统实现(附源码,文档说明)
博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇dz…...
TCP 连接状态标识 | SYN, FIN, ACK, PSH, RST, URG
注:本文为“TCP 连接状态标识”相关文章合辑。 TCP 的状态:SYN, FIN, ACK, PSH, RST, URG 简介及 ACK 确认机制 llzhang_fly 于 2020-09-19 05:25:26 发布 1、TCP 的状态 FLAGS 字段状态 在 TCP 层,有个 FLAGS 字段,这个字段有…...
WXML模版语法-事件绑定
知识点1:什么是事件 事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。 知识点2:小程序中常用的事件 类型绑定方式事件描述tapbindtap或bind:tap手指触摸后马上离开,类似于…...
楚慧杯Web
WEB1 计算器 import requests rrequests.session() data{"answer":0} url"" for i in range(30):if i0:rrequests.get(url)dr.textdd.split(":")[22][1:].split("<br>")[0]data["answer"]str(eval(d))print(eval(d)…...
工商业储能电站能量管理本地系统及多站点云平台
一、储能站就地监控 Acre1-2000MG储能能量管理系统是针对工商业储能电站研制的本地化能量管理系统,可实现了储能电站的数据采集、数据处理、数据存储、数据查询与分析、可视化监控、报警管理、统计报表、策略管理、历史曲线等功能。其中策略管理,支持多…...
HTML标签笔记
黑马程序员视频地址:黑马程序员前端JavaScript入门到精通全套视频教程https://www.bilibili.com/video/BV1Y84y1L7Nn?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes 标题与段落 标题 <h1>~<h6> 段落 <p…...
pthread_create函数
函数原型 pthread_create 是 POSIX 线程(pthread)库中的一个函数,用于在程序中创建一个新线程。 #include <pthread.h>int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *a…...
C# 并发和并行的区别--16
目录 并发和并行 一.并发 定义 特点 代码示例 代码解释 二.并行 定义 特点 在C#中的体现 代码示例 代码解释 三.并发和并行的区别 四 .如何在C#中选择并发还是并行 1.考虑任务类型 2.代码示例 3.注意事项 五.总结 并发和并行 在编程领域,并发和并行是两个密切…...
Java日志配置
1.导入依赖 <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.23.1</version></dependency><dependency><groupId>org.apache.logging.log4j</groupI…...
python中的RPA->playwright自动化录制脚本实战案例笔记
playwright录制功能使用绕过登录操作 1、首先安装playwright pip install playwright2、 安装支持的浏览器 playwright install # 安装支持的浏览器:cr, chromium, ff, firefox, wk 和 webkit3、接着在自己的项目下运行录制命令: playwright codegen…...
Linux查看日志命令
问题排查过程: 1. 评估问题现象是否是操作问题,还是服务bug,页面出异常信息是后端,没抛异常信息有可能是前端渲染问题,F12抓包看那个字段没有数据(有时候需要前端帮忙确定是哪一个字段)&#x…...
(8)ERC20详细介绍
ERC20 是以太坊上的一种代币标准(同质化代币),由 Fabian Vogelsteller 在 2015 年提出。它定义了一组通用的接口和规则,使得开发者可以创建可互操作的代币。ERC20 代币在以太坊生态系统中非常流行,广泛应用于各种去中心…...
opencv projectPoints函数 computeCorrespondEpilines函数 undistortPoints函数
opencv projectPoints函数 cv::projectPoints 是 OpenCV 中用于将三维点投影到二维图像平面的函数。它通常用于计算在相机坐标系下的三维点在图像坐标系中的位置,考虑了相机的内参和外参。 函数原型 void cv::projectPoints(InputArray objectPoints,InputArray …...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
