自由学习记录(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);
        }

        // 获取触摸 ID
        if (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)需要你明确地指定运行哪个类

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【2025AI发展预测】2.2025的风口与发展,我们如何主动拥抱这一浪潮

个人主页&#xff1a;Icomi 大家好我是一颗米&#xff0c;本系列文章包含我个人的一些思考见解&#xff0c;以及在网上看到的相关资讯&#xff0c;结合本人的认识&#xff0c;在那基础上进行加工输出&#xff0c;希望能帮助到各位&#xff0c;若您对本系列感兴趣&#xff0c;欢…

操作系统(Linux Kernel 0.11Linux Kernel 0.12)解读整理——内核初始化(main init)之硬盘初始化

前言 对硬盘和软盘块设备上数据的读写操作是通过中断处理程序进行的。内核每次读写的数据量以一个逻辑块(1024 字节)为单位&#xff0c;而块设备控制器则是以扇区(512字节)为单位访问块设备。在处理过程中&#xff0c;内核使用了读写请求项等待队列来顺序地缓冲一次读写多个逻…

利用机器学习创建基于位置的推荐程序

推荐系统被广泛应用于不同的应用程序中&#xff0c;用于预测用户对产品或服务的偏好或评价。在过去的几分钟或几小时里&#xff0c;你很可能在网上遇到过或与某种类型的推荐系统进行过互动。这些推荐系统有不同的类型&#xff0c;其中最突出的包括基于内容的过滤和协作过滤。在…

【AI论文】Video-MMMU:评估从多学科专业视频中获取知识的能力

摘要&#xff1a;人类通过三个认知阶段获取知识&#xff1a;感知信息、理解知识以及运用知识解决新问题。视频作为这一学习过程的有效媒介&#xff0c;促进了这些认知阶段的逐步推进。然而&#xff0c;现有的视频基准测试未能系统地评估大型多模态模型&#xff08;LMMs&#xf…

【C++高并发服务器WebServer】-9:多线程开发

本文目录 一、线程概述1.1 线程和进程的区别1.2 线程之间共享和非共享资源1.3 NPTL 二、线程操作2.1 pthread_create2.2 pthread_exit2.3 pthread_join2.4 pthread_detach2.5 patch_cancel2.6 pthread_attr 三、实战demo四、线程同步五、死锁六、读写锁七、生产消费者模型 一、…

C语言学习强化

前言 数据的逻辑结构包括&#xff1a; 常见数据结构&#xff1a; 线性结构&#xff1a;数组、链表、队列、栈 树形结构&#xff1a;树、堆 图形结构&#xff1a;图 一、链表 链表是物理位置不连续&#xff0c;逻辑位置连续 链表的特点&#xff1a; 1.链表没有固定的长度…

【C++探索之路】STL---string

走进C的世界&#xff0c;也意味着我们对编程世界的认知达到另一个维度&#xff0c;如果你学习过C语言&#xff0c;那你绝对会有不一般的收获&#xff0c;感受到C所带来的码云风暴~ ---------------------------------------begin--------------------------------------- 什么是…

【WebRTC - STUN/TURN服务 - COTURN配置】

在WebRTC中&#xff0c;对于通信的两端不在同一个局域网的情况下&#xff0c;通信两端往往无法P2P直接连接&#xff0c;需要一个TURN中继服务&#xff0c;而中继服务可以选用 COTURN 构建。 注&#xff1a;COTURN 是一个开源的 TURN&#xff08;Traversal Using Relays around…

React 前端框架实战教程

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 引言 React 是由 Facebook 开发的前端 JavaScript 库&#xff0c;旨在构建高效、灵活的用户界面&#xff0c;尤其适用于单页应用…

MiniMax-01中Lightning Attention的由来(线性注意力进化史)

目录 引言原始注意力线性注意力因果模型存在的问题累加求和操作的限制Lightning AttentionLightning Attention-1Lightning Attention-2 备注 引言 MiniMax-01: Scaling Foundation Models with Lightning Attention表明自己是第一个将线性注意力应用到如此大规模的模型&#…

互联网医院成品|互联网医院软件源码

互联网医院系统带来的好处是显而易见的&#xff0c;其通过先进的互联网技术为医疗行业带来了巨大的变革。以下将从多个方面详细阐述其带来的益处。 一、便捷的医疗服务 互联网医院系统为患者提供了更为便捷的医疗服务。患者无需再亲自前往医院&#xff0c;只需通过电脑、手机等…

unity学习20:time相关基础 Time.time 和 Time.deltaTime

目录 1 unity里的几种基本时间 1.1 time 相关测试脚本 1.2 游戏开始到现在所用的时间 Time.time 1.3 时间缩放值 Time.timeScale 1.4 固定时间间隔 Time.fixedDeltaTime 1.5 两次响应时间之间的间隔&#xff1a;Time.deltaTime 1.6 对应测试代码 1.7 需要关注的2个基本…

Centos7系统php8编译安装ImageMagick/Imagick扩展教程整理

Centos7系统php8编译安装ImageMagick/Imagick扩展教程整理 安装php8安装ImageMagick1、下载ImageMagick2、解压并安装3、查看是否安装成功 安装imagick扩展包 安装php8 点我安装php8 安装ImageMagick 1、下载ImageMagick wget https://www.imagemagick.org/download/ImageMa…

RabbitMQ模块新增消息转换器

文章目录 1.目录结构2.代码1.pom.xml 排除logging2.RabbitMQConfig.java3.RabbitMQAutoConfiguration.java 1.目录结构 2.代码 1.pom.xml 排除logging <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/PO…

Linux——网络基础(1)

文章目录 目录 文章目录 前言 一、文件传输协议 应用层 传输层 网络层 数据链路层 数据接收与解封装 主机与网卡 数据传输过程示意 二、IP和MAC地址 定义与性质 地址格式 分配方式 作用范围 可见性与可获取性 生活例子 定义 用途 特点 联系 四、TCP和UDP协…

SpringBoot+Electron教务管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.查询课程表代码2.保存学生信息代码3.用户登录代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBootElectron框架开发的教务管理系统。首先&#xff…

有限元分析学习——Anasys Workbanch第一阶段笔记(15)接触间隙处理与赫兹接触

目录 0 序言 1 接触的间隙处理 1.1 结果对比 1.2 处理方法 2 赫兹接触 0 序言 本章主要介绍间隙出现时的三种解决方法&#xff0c;齿轮点蚀/表面剥落涉及的赫兹接触的一些理论知识。 1 接触的间隙处理 在实际产品过程中&#xff0c;很多时候由于设计问题&#xff0c;原本…

go单元测试和基准测试

1、单元测试和基准测试 单元测试和基准测试代码开发中的重要环节&#xff0c;良好的单元测试和基准测试&#xff0c;能提升开发质量&#xff0c;对整体开发有非常重要的重要&#xff0c;下面介绍单元测试和基准测试的写法。 2、单元测试和基准测试写法 以排序基本排序算法&a…

自由窗口边框阴影描绘方案汇总-社群讨论学习

背景&#xff1a; 针对很多厂商的自由窗口都有内外阴影效果&#xff0c;针对这样一个需求其实不仔细看可能都看不出来&#xff0c;不过确实也是存在的这种阴影&#xff0c;这里我搞个明显一些的给大家看看&#xff1a; 针对这样一个需求&#xff0c;在我们vip学员群里进行了相…

应用层协议 HTTP 讲解实战:从0实现HTTP 服务器

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; HTTP 协议 &#x1f98b; 认识 URL&#x1f98b; urlencode 和 urldecode 二&#xff1a;&#x1f525; HTTP 协议请求与响应格式 &#x1f98b; HTTP 请求…