自由学习记录(32)

文件里找到切换颜色空间

fgui中的 颜色空间是一种总体使用前的设定

颜色空间,和半透明混合产生的效果有差异,这种问题一般可以产生联系

动效就是在fgui里可以编辑好,然后在unity中也准备了对应的调用手段,可以详细的使用每一个具体的数据,自定义修改

可以操控单独的一个帧的相关数据

stop可以额外设置,到底要怎么停下,比如要不要把当前播放位置直接设置到complete,或者要不要现在就调用结束的方法

得到动效,给动效安排

控制器配合动效使用

缓动函数简介

Back (回弹)

回弹缓动函数让动画在结束时稍微"回弹",即在结束前稍微倒回一点,然后才完成动画。适用于弹跳效果或非常强调动画结束时的张力。

Bounce (弹跳)

弹跳缓动函数模拟物体在地面上的弹跳。物体会在接近目标时弹回,逐渐减少弹跳的幅度。常用于模拟物理上类似跳跃的效果。

Circ (圆形)

圆形缓动函数模拟物体沿着圆形轨迹的运动。它的运动变化是平滑的,适合用于一些曲线运动的效果。

Cubic (三次方)

三次方缓动函数改变速率的变化更为平缓,相比于线性动画,它提供了一个平滑的加速和减速效果。

Elastic (弹性)

弹性缓动函数模拟弹簧或橡胶带的物理行为,动画会在到达目标之前来回波动,最后才会稳定下来。适合用来表现弹性运动。

Expo (指数)

指数缓动函数的变化速率比较剧烈,在开始时非常慢,然后快速加速,通常用于需要快速开始的动画。

Linear (线性)

线性缓动函数是匀速运动,不会加速或减速,适用于需要恒定速度的场景。

Quad (二次方)

二次方缓动函数变化较为平滑,但与三次方相比,它的速度变化更为缓和,适合用于需要较平滑的变化效果。

Quart (四次方)

四次方缓动函数与三次方类似,但变化更为剧烈,适用于一些需要快速加速的场景。

Quint (五次方)

五次方缓动函数通常具有较为强烈的加速效果,适用于结束时快速完成的动画。

Sine (正弦)

正弦缓动函数使动画变化看起来更加自然,速度变化呈现周期性的波动,通常用于模拟波动效果。

Custom (自定义)

自定义缓动函数让你创建特定的缓动曲线,完全根据需要来控制动画的变化。

是当前帧到下一帧之间的tween,

是关于结束的判定的,如果动效移出舞台时,是当前立刻停下删去还是等彻底结束位置来了再删去

右键这个组件,就可以改变一些属性

动效是以组件为单位创建的,附着于组件

在资源文件夹那边右键创建新材质

附着上去背景还是这个3D曲面,所以要改材质

硬性要求

曲面UI的设置

本不知名字,抓住GButton之后就可以赋值名字了

比如可以

得到按钮的名字

在unity里的使用要创建单独的菜单对象menu,在这个实例对象上添加items

在unity里使用的话,要先设置UIConfig的系统的弹出菜单,对应fgui里的组件地址,这是定下外形的框架

创建之后会变成一个新的组件在fgui里

要设置主菜单要在fgui软件里面设置图片,都是

menu 的显示要自己调用,对象是存在了,但只是数据上的对象已经存在

弹出功能,fgui也有内置,也算是对象类型

不一定要把面板都做成窗口

锁定窗口,一开始就设置好,可以在锁定后添加提示,防止不知道被锁定

模态窗口,就是窗口以外的区域都不可以点击

分支,组件是引用会切换,组件本源不一样,在分支文件夹里是无效的

一般是等比缩放

右键替换成元件

拖动中是在拖动就一直执行,停下的话也会停下

事件捕获,类似于事件监听传递的反向

using FairyGUI;
using UnityEngine;public class EventContextExample : MonoBehaviour
{GButton button;  // 定义一个按钮void Start(){// 初始化并加载FairyGUI资源UIPackage.AddPackage("UI/Example");  // 根据你的资源路径调整GComponent mainUI = UIPackage.CreateObject("Example", "MainUI").asCom;GRoot.inst.AddChild(mainUI);button = mainUI.GetChild("btnTest").asButton;  // 获取按钮// 监听按钮的点击事件button.onClick.Add(OnButtonClick);}// 按钮点击事件处理函数void OnButtonClick(EventContext context){// 获取触发事件的相关数据InputEvent inputEvent = context.inputEvent;// 打印触摸点的位置(转换为本地坐标)Vector2 localPos = button.GlobalToLocal(new Vector2(inputEvent.x, inputEvent.y));Debug.Log("Button clicked at position: " + localPos);// 打印键盘按键,如果是键盘事件if (inputEvent.keyCode != 0){Debug.Log("Key pressed: " + inputEvent.keyCode);}// 打印鼠标滚轮的移动值if (inputEvent.mouseWheelDelta != 0){Debug.Log("Mouse wheel delta: " + inputEvent.mouseWheelDelta);}// 获取触摸 IDif (inputEvent.touchId != -1){Debug.Log("Touch ID: " + inputEvent.touchId);}// 检查是否为双击事件if (context.isDoubleClick){Debug.Log("This was a double click!");}// 如果需要停止事件传播,可以调用// context.StopPropagation();}
}

代码解释

  1. 初始化 UI

    • 使用 UIPackage.AddPackage 加载 UI 包。
    • 获取按钮对象 button,并为其添加点击事件处理器。
  2. 监听事件并提取数据

    • button.onClick.Add(OnButtonClick):为按钮的点击事件添加监听器,并传入 OnButtonClick 作为回调。
    • OnButtonClick 方法中,我们通过 context 参数来获取有关事件的详细信息。
  3. EventContext 获取数据

    • inputEvent.xinputEvent.y:获取触摸或鼠标点击的全局坐标。
    • button.GlobalToLocal():将全局坐标转换为按钮本地坐标,以便更准确地处理点击位置。
    • inputEvent.keyCode:如果是键盘事件,输出按下的键。
    • inputEvent.mouseWheelDelta:获取鼠标滚轮的增量值。
    • inputEvent.touchId:获取当前触摸的 ID,用于多点触控场景。
    • context.isDoubleClick:检查是否为双击事件。
  4. 停止事件传播

    • 通过 context.StopPropagation() 方法,你可以阻止事件继续向其他元素传播,这对于一些特殊的交互设计很有用。

a breakdown of the key parameters described:

Parameters in EventContext:

  • sender: The object that triggered the event.
  • initiator: The object that initiated the event, typically a DisplayObject in FairyGUI.
  • type: The type of the event (e.g., mouse click, touch, keyboard event).
  • inputEvent: If the event is a keyboard, touch, or mouse event, inputEvent allows access to the specific data related to that event (such as key code, touch ID, or mouse coordinates).
    • x and y: The position of the touch or mouse pointer in the global coordinate system (needs conversion to local coordinates via GlobalToLocal).
    • keyCode: The key code if it's a keyboard event.
    • mouseWheelDelta: The value of the mouse wheel movement.
    • touchId: The ID of the touch point associated with the event.
    • isDoubleClick: A boolean indicating if the event is a double click.
  • data: The event's data. Depending on the type of event, this can have different meanings, such as the value of the key pressed, touch position, etc.
  • StopPropagation: A method used to stop the event from propagating further (i.e., prevent other listeners from receiving it).
  • CaptureTouch: A method that can be used during the TouchBegin phase to allow touch events to continue to be detected even if the pointer moves outside of the target object.
  • UncaptureTouch: A method used to cancel the capture and stop the propagation of touch events outside the target object.

这样就只有按钮按下和面板按下,因为在stoppropagation这里停止了向上的事件监听传递

事件传递的打断

类型为 InputEvent

关于键盘输入的检测

LongPressGestureSwipeGesturePinchGestureRotationGesture 都是绑定到特定的 UI 元件 panel1.m_btnTest 上的。这意味着只有在 panel1.m_btnTest 按钮区域内触发的相应手势才会被检测到。

手势识别并不总是针对整个屏幕,而是仅在你指定的 UI 元件内进行。例如,如果你想让一个按钮响应长按手势,而其他区域不响应,你就将手势绑定到这个按钮上。

这样的问题,首先是图片的物理屏幕坐标,unity的左下角起点坐标,FGUI的左上角起点坐标,FGUI在自身内部的无缩放逻辑坐标

要生成一张图片跟随鼠标移动用fgui,先有这个图片组件,然后写一个update一直更新它的位置,也就是物理屏幕坐标

调整组件的位置是用gComponent里带的改位置的方法...剩下的就是把定义的逻辑差异解决就可以 

是属于元件的方法

localtoroot可以把屏幕上的物理坐标,转成FGUI里的逻辑坐标(不含缩放影响的,在FGUI中最原始的操作的坐标)

,,,这么胆小有必要吗,本来就没什么要担忧的点,,没必要了吧

<<<,<<<<话不多说,开始

唉,1.12了,这几天很多事,也是挺心累的吧

想着留一两天给自己所谓的“放松”,但我现在的视角,所谓的放松好像已经有点脱模了,可能我认为我现在就是放松 的,而强行要我再放松一点,这让我觉得只是在犯傻

也是挺不可思议的吧,我在刚刚进入大学的时候,比起现在真的是什么都不懂(谁晓得之后我又会不会也觉得现在幼稚),所以那个时候也是真的迷惑了,产生了一种原初的迷惑:为什么我会到现在这个地步?是我真的还不够努力吗?是我还不够乖吗?不够听话吗?

现在看来,如果要细节的回答这个问题,首先,这个问题对当时的我是心里上真正直接产生的吗,还是看了别人的经历说出了这一段文字 我发现自己也差不多,于是产生的概念引用呢?

如果非要用各种词语的概念来解释,我将自己定义概念,表达我的体验,比如吃苦和努力这两个词,放在别人决定的卷子上,中间就是可以划等号的,而如果是我,我认为“努力”这个词已经被用臭了,什么懒人都可以轻松引用这个概念,“看那个家伙,真的好努力啊,可惜就是没有回报!”,所以我认为这个词不能和吃苦划等号,“没有苦难,就没有成长”,比起前一句,我对这一句的亲身体验更深刻,所以....要细节的扯下去,那估计也会没完没了了,还会扯到很多复杂的层面,比如“那你怎么解释,有些人吃了一辈子苦,却没有回报?”,回报对个人的定义不同,首先要怀疑的是物理事实和精神事实是否真正的达到合理的共通逻辑...

即使是最简单的问题“为什么今天不开心,不想学”,也不存在任何人可以告诉你百分百的答案。。。自己看的都嫌复杂,不想解释,最后得到的结果也会是,这个人得到了自己的逻辑自洽,选择放心的继续相信自己的观点,或者吸收外部的逻辑,然后自洽自身的逻辑

<<<<<<,<<<<

那个时候我就下定决心,我绝对不要被视为奴,凭什么我会被视为奴,就凭你们的一张试卷吗,就凭他们拿分拿的高一点吗,让我承认那样的人在我之上,我不可能

于是我想尽办法让自己可以看到更高的视角,即要先找到“站得高”的观点,又在一堆假的“站得高”里只凭自己挑出真的站得高的观点,

连我自己都不可思议,才这么短的时间,我现在的视角居然扩大了这么多,想到那个刚进大学,心里都是不甘和野心的我,真想抱抱他,鼓励一下他,孩子啊,凭着这份决心,你会值得更好的生活的

苦难都是人定的,放松这种 东西,也是为了欺骗自己,让自己不相信某种事实的手段,人的本身是一种平衡,而当激动的时候,就会想办法让自己平和,

how i wish you only knew

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,

 之间都要用空格隔开

-p后面直接接密码,不隐藏

正常来说写到-p为止,按回车

之后输入密码就会变成星号

不加;就不算结束

 

刚登录默认为空,只要create之后不会自动切换,没use就是空

AUTO_INCREMENT 

手动设置跳过了某些值,后续的自动生成会从当前的最大值递增

primary key 是规范的,并不是说必须,但添加了一定是更加安全的

decimal(10,2)总共最多十位,总共最多两位小数,需要同时满足

命令行里输入mysql语句,如果输错了,只能ctrl+C,全部重新输入一遍

这一点有时候也比较麻烦的,也算是为什么有一些图形化界面的软件写sql语句

如果 households 表中某一行被删除或更新,外键约束可以控制当前表中相关行的行为(如级联删除或禁止删除)。

外键约束的报错

外键约束比主键就强硬多了,规范更强

如何避免外键约束错误:

  1. 确保引用的父表记录存在

    • 插入或更新数据前,先检查外键字段的值是否在父表中存在:

      SELECT * FROM households WHERE id = 99;

  2. 删除父表记录前清理子表数据

    • 如果需要删除父表的记录,可以先删除子表中相关的记录:

      DELETE FROM members WHERE household_id = 1;

      DELETE FROM households WHERE id = 1;

  3. 使用级联操作

    定义外键时添加 ON DELETE CASCADEON UPDATE CASCADE,让 MySQL 自动处理关联数据:
    • FOREIGN KEY (household_id) REFERENCES households(id)

      ON DELETE CASCADE ON UPDATE CASCADE;

  4. 确保引用的列是主键或唯一键

    • 定义外键时,被引用的列必须是父表的主键或唯一键。

一个Java项目文件夹里装的东西:

在 IntelliJ IDEA 中,当你运行或编译项目时,IDE 会自动将 .java 文件编译成 .class 文件,并将其放入指定的输出目录(通常是 outtarget 文件夹中)。

它们是同一个程序的不同阶段产物,IDE 会自动管理编译流程。

分src和out两个文件夹,是输出目录和源码分离是业界标准做法,为了清晰地分离 源码编译输出,便于管理和防止混淆。

.idea 文件夹是 IntelliJ IDEA 项目的 配置文件夹,存储与项目相关的配置信息。一般情况下,你不需要手动修改这些文件。

自动生成的初始Main的.class文件并没有什么特别,仅仅是名字为Main而已

写了多个 .class 文件且每个文件都有 main 方法,这不会造成冲突

每个 .class 文件可以包含自己的 main 方法。它们互不干扰。

Java 运行环境(JVM)需要你明确地指定运行哪个类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8508.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【教学类-99-01】20250127 蛇年红包(WORD模版)

祈愿在2025蛇年里&#xff0c; 伟大的祖国风调雨顺、国泰民安、每个人齐心协力&#xff0c;共同经历这百年未有之大变局时代&#xff08;国际政治、AI技术……&#xff09; 祝福亲友同事孩子们平安健康&#xff08;安全、安全、安全&#xff09;、巳巳如意&#xff01; 背景需…

当高兴、尊重和优雅三位一体是什么情况吗?

英语单词 disgrace 表示“失脸&#xff0c;耻辱&#xff0c;不光彩&#xff0c;名誉扫地”一类的含义&#xff0c;可做名词或动词使用&#xff0c;含义基本一致&#xff0c;只是词性不同。 disgrace n.丢脸&#xff1b;耻辱&#xff1b;不光彩&#xff1b;令人感到羞耻的人(或…

基于RIP的MGRE实验

实验拓扑 实验要求 按照图示配置IP地址配置静态路由协议&#xff0c;搞通公网配置MGRE VPNNHRP的配置配置RIP路由协议来传递两端私网路由测试全网通 实验配置 1、配置IP地址 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 15.0.0.1 24 [R1]int LoopBack 0 [R1-LoopBack0]i…

hot100_24. 两两交换链表中的节点

hot100_24. 两两交换链表中的节点 思路1思路2 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&…

舆情系统的情报搜索功能

引言 随着信息技术的发展和网络媒体的快速发展&#xff0c;舆情监测已成为各行各业不可或缺的工具。舆情系统中的情报搜索功能&#xff0c;作为其核心组成部分&#xff0c;能够帮助用户迅速、全面地捕捉互联网、社交平台、新闻媒体等渠道中的各类信息和舆论动态。情报搜索不仅提…

STM32新建不同工程的方式

新建工程的方式 1. 安装开发工具 MDK5 / keil52. CMSIS 标准3. 新建工程3.1 寄存器版工程3.2 标准库版工程3.3 HAL/LL库版工程3.4 HAL库、LL库、标准库和寄存器对比3.5 库开发和寄存器的关系 4. STM32CubeMX工具的作用 1. 安装开发工具 MDK5 / keil5 MDK5 由两个部分组成&#…

进程间通信

进程间通信 进程间通信介绍 进程间通信⽬的 数据传输&#xff1a;⼀个进程需要将它的数据发送给另⼀个进程 资源共享&#xff1a;多个进程之间共享同样的资源。 通知事件&#xff1a;⼀个进程需要向另⼀个或⼀组进程发送消息&#xff0c;通知它&#xff08;它们&#xff09…

O(1) 时间插入、删除和获取随机元素

hello 大家好&#xff01;今天开写一个新章节&#xff0c;每一天一道算法题。让我们一起来学习算法思维吧&#xff01; 为了实现 RandomizedSet 类&#xff0c;并且保证每个函数的平均时间复杂度为0(1) &#xff0c;我们可以结合使用数组和哈希表。数组用于存储集合中的元素&am…

Nxopen 直齿轮参数化设计

NXUG1953 Visualstudio 2019 参考论文&#xff1a; A Method for Determining the AGMA Tooth Form Factor from Equations for the Generated Tooth Root Fillet //FullGear// Mandatory UF Includes #include <uf.h> #include <uf_object_types.h>// Internal I…

基于vue和elementui的简易课表

本文参考基于vue和elementui的课程表_vue实现类似课程表的周会议列表-CSDN博客&#xff0c;原程序在vue3.5.13版本下不能运行&#xff0c;修改两处&#xff1a; 1&#xff09;slot-cope改为v-slot 2&#xff09;return background-color:rgb(24 144 255 / 80%);color: #fff; …

Unreal Engine 5 C++ Advanced Action RPG 十一章笔记

第十一章 In Game Widgets 本章节就是做UI2-Template Button Widget 这章节创建不同的UI 结束UI胜利UI暂停菜单主菜单加载UI新建一个按钮小组件作为模版 3-Pause Menu Template Button 继续做更多模版UI 4-Lose Screen(游戏失败UI) 做失败的UI 之前按钮模版的调度程序就在这起…

若依基本使用及改造记录

若依框架想必大家都了解得不少&#xff0c;不可否认这是一款及其简便易用的框架。 在某种情况下&#xff08;比如私活&#xff09;使用起来可谓是快得一匹。 在这里小兵结合自身实际使用情况&#xff0c;记录一下我对若依框架的使用和改造情况。 一、源码下载 前往码云进行…

【数据结构】(1)集合类的认识

一、什么是数据结构 1、数据结构的定义 数据结构就是存储、组织数据的方式&#xff0c;即相互之间存在一种或多种关系的数据元素的集合。 2、学习数据结构的目的 在实际开发中&#xff0c;我们需要使用大量的数据。为了高效地管理这些数据&#xff0c;实现增删改查等操作&…

git相关命令

目录 一、创建 二、添加文件和修改提交文件 1、git add 文件名 添加到暂存区 提交多个文件 撤销回工作区 2、git commit -m "注释" 提交文件到主分支 3、修改后添加&#xff0c;提交 三、版本回退 1、查看日志git log 2、版本回退和撤销 2.1…

第4章 神经网络【1】——损失函数

4.1.从数据中学习 实际的神经网络中&#xff0c;参数的数量成千上万&#xff0c;因此&#xff0c;需要由数据自动决定权重参数的值。 4.1.1.数据驱动 数据是机器学习的核心。 我们的目标是要提取出特征量&#xff0c;特征量指的是从输入数据/图像中提取出的本质的数 …

[c语言日寄]assert函数功能详解

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…

Canny 边缘检测

步骤 1.降噪 应用高斯滤波器&#xff0c;以平滑图像&#xff0c;滤除噪声。 边缘检测易受噪声影响&#xff0c;所以使用高斯滤波器平滑图像&#xff0c;降低噪声。 2.梯度 计算图像中每个像素点的梯度大小和方向。 计算大小 Sobel算子是一种常用的边缘检测滤波器&#xff…

【数据结构】_链表经典算法OJ:合并两个有序数组

目录 1. 题目描述及链接 2. 解题思路 3. 程序 3.1 第一版 3.2 第二版 1. 题目描述及链接 题目链接&#xff1a;21. 合并两个有序链表 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。 新链表是通过拼接给…

LiteFlow Spring boot使用方式

文章目录 概述LiteFlow框架的优势规则调用逻辑规则组件定义组件内数据获取通过 DefaultContext自定义上下文 通过 组件规则定义数据通过预先传入数据 liteflow 使用 概述 在每个公司的系统中&#xff0c;总有一些拥有复杂业务逻辑的系统&#xff0c;这些系统承载着核心业务逻…

六、深入了解DI

依赖注入是⼀个过程&#xff0c;是指IoC容器在创建Bean时,去提供运⾏时所依赖的资源&#xff0c;⽽资源指的就是对象. 在上⾯程序案例中&#xff0c;我们使⽤了 Autowired 这个注解&#xff0c;完成了依赖注⼊的操作. 简单来说,就是把对象取出来放到某个类的属性中。 关于依赖注…