当前位置: 首页 > news >正文

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 的主要功能

  1. 动画状态机

    • Animator Controller 使用状态机(State Machine)来管理动画状态。每个状态代表一个动画片段(如“待机”、“行走”、“奔跑”)。

    • 你可以在状态之间定义过渡(Transitions),并设置条件来控制何时从一个状态切换到另一个状态。

  2. 参数(Parameters)

    • Animator Controller 允许你定义参数(如布尔值、浮点数、整数或触发器),这些参数可以用来控制状态之间的过渡。

    • 例如,你可以使用一个布尔参数 IsWalking 来控制角色是否从“待机”状态切换到“行走”状态。

  3. 动画层(Layers)

    • Animator Controller 支持多层动画,允许你在不同的层上播放不同的动画。例如,你可以在基础层上播放角色的移动动画,同时在另一个层上播放上半身的射击动画。

  4. 混合树(Blend Trees)

    • 混合树允许你根据参数值(如速度或方向)在多个动画之间平滑过渡。例如,你可以根据角色的移动速度在“行走”和“奔跑”动画之间混合。

如何使用 Animator Controller

  1. 创建 Animator Controller

    • 在Unity中,右键点击项目窗口,选择 Create > Animator Controller

    • 将创建的 Animator Controller 分配给游戏对象的 Animator 组件。

  2. 添加动画状态

    • 打开 Animator 窗口(Window > Animation > Animator)。

    • 将动画片段拖放到 Animator 窗口中,创建动画状态。

  3. 设置过渡和条件

    • 右键点击一个状态,选择 Make Transition,然后连接到另一个状态。

    • 在过渡线上设置条件(如参数值),以控制何时触发过渡。

  4. 控制动画

    • 在脚本中,你可以通过 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&#xff0c;去掉panel自带的image&#xff0c;自己加一个image&#xff0c;使用锚点分配好 2.锚点&#xff08;快捷键点击后 ALTShift&#xff09; 锚点是什么&#xff1f; 锚点的实际例子 例子1&#xff1a;固定在父容器的中心 例子2&#xff1a;对齐到…...

【达梦数据库(Oracle模式)】如何将视图中的数据导出

在某些情况下&#xff0c;我们需要将生产环境某个模式下的数据导入到开发电脑中&#xff0c;因为正式环境无法连接外网数据。 方式一&#xff1a;将视图查询出来&#xff0c;然后右键导出所有查询结果&#xff08;不推荐&#xff09; 优点&#xff1a;方便快捷 缺点&#xff1…...

GB44495-2024 汽车整车信息安全技术要求 - V2X部分前置要求

背景 GB 44495-2024《汽车整车信息安全技术要求》中关于V2X&#xff08;车与外界通信&#xff09;的部分&#xff0c;主要关注于通信安全要求&#xff0c;旨在确保车辆在与外部设备进行数据交互时的信息安全。其测试大致可分为消息层&#xff08;数据无异常&#xff09;、应用…...

FastAPI 应用的容器化与 Docker 部署:提升性能与可扩展性

FastAPI 应用的容器化与 Docker 部署&#xff1a;提升性能与可扩展性 目录 &#x1f433; 使用 Docker 容器化 FastAPI 应用⚙️ 使用 Docker Compose 管理多个服务的部署&#x1f680; 在 Docker 容器中部署与运行 FastAPI 应用 1. &#x1f433; 使用 Docker 容器化 FastAPI…...

QT入门的一些吐槽

QT入门的一些吐槽 看了网上的一些介绍QT的课程&#xff0c;看了一些讲述qt的书籍&#xff0c;然而再想自己做一个项目的时候&#xff0c;却发现我好像什么都不会&#xff0c;QT对我来说就是一个黑盒子。 我只会&#xff1a; 使用QT Creator创建一个项目&#xff0c;再UI文件中…...

4.Spring AI Prompt:与大模型进行有效沟通

1.什么是提示词 在人工智能领域&#xff0c;提示词&#xff08;Prompt&#xff09;扮演着至关重要的角色&#xff0c;它宛如一把精准的钥匙&#xff0c;为 AI 大模型开启理解之门。作为向模型输入的关键信息或引导性语句&#xff0c;提示词能够助力模型迅速洞悉问题需求&#…...

深入内核讲明白Android Binder【二】

深入内核讲明白Android Binder【二】 前言一、Binder通信内核源码整体思路概述1. 客户端向服务端发送数据流程概述1.1 binder_ref1.2 binder_node1.3 binder_proc1.4 binder_thread 2. 服务端的binder_node是什么时候被创建的呢&#xff1f;2.1 Binder驱动程序为服务创建binder…...

Python基于Django的图像去雾算法研究和系统实现(附源码,文档说明)

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…...

TCP 连接状态标识 | SYN, FIN, ACK, PSH, RST, URG

注&#xff1a;本文为“TCP 连接状态标识”相关文章合辑。 TCP 的状态&#xff1a;SYN, FIN, ACK, PSH, RST, URG 简介及 ACK 确认机制 llzhang_fly 于 2020-09-19 05:25:26 发布 1、TCP 的状态 FLAGS 字段状态 在 TCP 层&#xff0c;有个 FLAGS 字段&#xff0c;这个字段有…...

WXML模版语法-事件绑定

知识点1&#xff1a;什么是事件 事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为&#xff0c;反馈到逻辑层进行业务的处理。 知识点2&#xff1a;小程序中常用的事件 类型绑定方式事件描述tapbindtap或bind:tap手指触摸后马上离开&#xff0c;类似于…...

楚慧杯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储能能量管理系统是针对工商业储能电站研制的本地化能量管理系统&#xff0c;可实现了储能电站的数据采集、数据处理、数据存储、数据查询与分析、可视化监控、报警管理、统计报表、策略管理、历史曲线等功能。其中策略管理&#xff0c;支持多…...

HTML标签笔记

黑马程序员视频地址&#xff1a;黑马程序员前端JavaScript入门到精通全套视频教程https://www.bilibili.com/video/BV1Y84y1L7Nn?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes 标题与段落 标题 <h1>~<h6> 段落 <p…...

pthread_create函数

函数原型 pthread_create 是 POSIX 线程&#xff08;pthread&#xff09;库中的一个函数&#xff0c;用于在程序中创建一个新线程。 #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 # 安装支持的浏览器&#xff1a;cr, chromium, ff, firefox, wk 和 webkit3、接着在自己的项目下运行录制命令&#xff1a; playwright codegen…...

Linux查看日志命令

问题排查过程&#xff1a; 1. 评估问题现象是否是操作问题&#xff0c;还是服务bug&#xff0c;页面出异常信息是后端&#xff0c;没抛异常信息有可能是前端渲染问题&#xff0c;F12抓包看那个字段没有数据&#xff08;有时候需要前端帮忙确定是哪一个字段&#xff09;&#x…...

(8)ERC20详细介绍

ERC20 是以太坊上的一种代币标准&#xff08;同质化代币&#xff09;&#xff0c;由 Fabian Vogelsteller 在 2015 年提出。它定义了一组通用的接口和规则&#xff0c;使得开发者可以创建可互操作的代币。ERC20 代币在以太坊生态系统中非常流行&#xff0c;广泛应用于各种去中心…...

opencv projectPoints函数 computeCorrespondEpilines函数 undistortPoints函数

opencv projectPoints函数 cv::projectPoints 是 OpenCV 中用于将三维点投影到二维图像平面的函数。它通常用于计算在相机坐标系下的三维点在图像坐标系中的位置&#xff0c;考虑了相机的内参和外参。 函数原型 void cv::projectPoints(InputArray objectPoints,InputArray …...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...