Cocos creator 3.8 一些事件的使用,加载预制体的两种方式 5

没搞懂rotation与angle,rotation既然是个四元素,可面板上的是什么Vec3的方式显示,而且发现旋转节点,哪怕单独的旋转y轴,有时候三个值也会发生变化,猜测可能引擎内部是按照一定的规则,来表示这个旋转的形式,可能按照x,y,z或者x,z,y这样,来改变每个值的不同,实现这个旋转。

console.log(this.node.children[0].position);
console.log(this.node.children[0].worldPosition);
console.log(this.node.children[0].scale);
this.node.children[0].setScale(v3(2, 2, 2));
console.log(this.node.children[0].worldScale);
console.log(this.node.children[0].angle);
console.log(this.node.children[0].rotation);
//rotation转euler
this.node.children[0].setRotationFromEuler(0, 60, 0);
this.node.children[0].setWorldRotationFromEuler(0, 60, 0);
console.log(this.node.children[0].angle);
console.log(this.node.children[0].rotation);

最新的api,好像要提出systemEvent这个全局单例了。

需要一个预制体,预制体[其他也差不多],声明或者脚本中使用的一些小小的写法,一些判断,允许空,但是需要做一些处理。

@property(Prefab)
plane: Prefab = null!;
// plane: Prefab | null = null;
// plane: Prefab = null as unknown as Prefab;
this.node?.addChild(plane);

下面是一些事件的调试,已经加载预制体的两种方式,界面挂载与动态加载

//事件监听
//系统事件 全局单例模式的 systemEvent SystemEvent
//小写的是实例,大写的是这个类 on emit off
// [Scene] 'systemEvent' is deprecated since v3.4.0, please use 'input' instead.
systemEvent.on(SystemEvent.EventType.TOUCH_START, this._onTouchStart, this);
systemEvent.on(SystemEvent.EventType.TOUCH_MOVE, this._onTouchMove, this);
// systemEvent.on(SystemEvent.EventType.TOUCH_CANCEL, this._onTouchCancel, this);
// systemEvent.on(SystemEvent.EventType.TOUCH_END, this._onTouchEnd, this);
input.on(Input.EventType.TOUCH_START, this._onInputTouchStart, this);
input.on(Input.EventType.KEY_UP, this._onInputkeyUp, this);
//重力感应
input.on(Input.EventType.DEVICEMOTION, this._DeviceMotion, this);
const plane: Node = instantiate(this.plane);
plane.parent = this.node;
plane.setPosition(0, 2, 0);
//loadDir<T extends Asset>(dir: string, onComplete?: ((err: Error | null, data: T[]) => void) | null): void;
resources.loadDir("plane01", (err: Error | null, data: Asset[]) => {if (err) {console.log("加载资源错误");}data.forEach(element => {if (element instanceof Prefab) {const plane: Node = instantiate(element);this.node?.addChild(plane);// plane.setParent(this.node);}});
});

API中一些常用事件的罗列

// export interface _cocos_input_input__InputEventMap {
//     [Input.EventType.MOUSE_DOWN]: (event: EventMouse) => void;
//     [Input.EventType.MOUSE_MOVE]: (event: EventMouse) => void;
//     [Input.EventType.MOUSE_UP]: (event: EventMouse) => void;
//     [Input.EventType.MOUSE_WHEEL]: (event: EventMouse) => void;
//     [Input.EventType.TOUCH_START]: (event: EventTouch) => void;
//     [Input.EventType.TOUCH_MOVE]: (event: EventTouch) => void;
//     [Input.EventType.TOUCH_END]: (event: EventTouch) => void;
//     [Input.EventType.TOUCH_CANCEL]: (event: EventTouch) => void;
//     [Input.EventType.KEY_DOWN]: (event: EventKeyboard) => void;
//     [Input.EventType.KEY_PRESSING]: (event: EventKeyboard) => void;
//     [Input.EventType.KEY_UP]: (event: EventKeyboard) => void;
//     [Input.EventType.DEVICEMOTION]: (event: EventAcceleration) => void;
//     [Input.EventType.GAMEPAD_CHANGE]: (event: EventGamepad) => void;
//     [Input.EventType.GAMEPAD_INPUT]: (event: EventGamepad) => void;
//     [Input.EventType.HANDLE_INPUT]: (event: EventHandle) => void;
//     [Input.EventType.HANDLE_POSE_INPUT]: (event: EventHandle) => void;
//     [Input.EventType.HMD_POSE_INPUT]: (event: EventHMD) => void;
//     [Input.EventType.HANDHELD_POSE_INPUT]: (event: EventHandheld) => void;
// }
// export interface _cocos_input_system_event__SystemEventMap {
//     [SystemEvent.EventType.MOUSE_DOWN]: (event: EventMouse) => void;
//     [SystemEvent.EventType.MOUSE_MOVE]: (event: EventMouse) => void;
//     [SystemEvent.EventType.MOUSE_UP]: (event: EventMouse) => void;
//     [SystemEvent.EventType.MOUSE_WHEEL]: (event: EventMouse) => void;
//     [SystemEvent.EventType.TOUCH_START]: (touch: Touch, event: EventTouch) => void;
//     [SystemEvent.EventType.TOUCH_MOVE]: (touch: Touch, event: EventTouch) => void;
//     [SystemEvent.EventType.TOUCH_END]: (touch: Touch, event: EventTouch) => void;
//     [SystemEvent.EventType.TOUCH_CANCEL]: (touch: Touch, event: EventTouch) => void;
//     [SystemEvent.EventType.KEY_DOWN]: (event: EventKeyboard) => void;
//     [SystemEvent.EventType.KEY_UP]: (event: EventKeyboard) => void;
//     [SystemEvent.EventType.DEVICEMOTION]: (event: EventAcceleration) => void;
// }
/**
*   - cc.Node.EventType.TOUCH_START  // 按下时事件
*   - cc.Node.EventType.TOUCH_Move   // 按住移动后事件
*   - cc.Node.EventType.TOUCH_END    // 按下后松开后事件
*   - cc.Node.EventType.TOUCH_CANCEL // 按下取消事件
*
* 以下事件只在 PC 平台上触发:
*
*   - cc.Node.EventType.MOUSE_DOWN  // 鼠标按下时事件
*   - cc.Node.EventType.MOUSE_MOVE  // 鼠标按住移动后事件
*   - cc.Node.EventType.MOUSE_ENTER // 鼠标进入目标事件
*   - cc.Node.EventType.MOUSE_LEAVE // 鼠标离开目标事件
*   - cc.Node.EventType.MOUSE_UP    // 鼠标松开事件
*/

记住事件监听后也要在必要的时候释放

//释放事件
protected onDestroy(): void {//估计要移除systemEvent这个组件实例了// systemEvent.off(SystemEvent.EventType.TOUCH_START, this._onTouchStart, this);input.off(Input.EventType.TOUCH_START, this._onInputTouchStart, this);// input.off(Input.EventType.TOUCH_START);
}

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

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

相关文章

Easyexcel(4-模板文件)

相关文章链接 Easyexcel&#xff08;1-注解使用&#xff09;Easyexcel&#xff08;2-文件读取&#xff09;Easyexcel&#xff08;3-文件导出&#xff09;Easyexcel&#xff08;4-模板文件&#xff09; 文件导出 获取 resources 目录下的文件&#xff0c;使用 withTemplate 获…

迁移学习理论与应用

迁移学习&#xff08;Transfer Learning&#xff09;是一种机器学习技术&#xff0c;旨在将一个任务&#xff08;源任务&#xff09;上学到的知识迁移到另一个相关但不完全相同的任务&#xff08;目标任务&#xff09;上&#xff0c;从而提高目标任务的学习效果。这种方法的核心…

近期两篇NeRF/3DGS-based SLAM方案赏析:TS-SLAM and MBA-SLAM

原文链接&#xff1a;近期两篇NeRF/3DGS-based SLAM方案赏析&#xff1a;TS-SLAM and MBA-SLAM paper1&#xff1a;TS-SLAM: 基于轨迹平滑约束优化的神经辐射场SLAM方法 导读 本文提出了TS-SLAM&#xff0c;一种改进的基于神经辐射场&#xff08;NeRF&#xff09;的SLAM方法…

游戏引擎学习第20天

视频参考:https://www.bilibili.com/video/BV1VkBCYmExt 解释 off-by-one 错误 从演讲者的视角&#xff1a;对代码问题的剖析与修复过程 问题的起因 演讲者提到&#xff0c;他可能无意中在代码中造成了一个错误&#xff0c;这与“调试时间标记索引”有关。他发现了一个逻辑问题…

《鸿蒙系统:开启智能新时代的璀璨之星》

一、鸿蒙系统&#xff1a;崛起之路 鸿蒙系统的发展历程堪称一部科技创新的传奇。2012 年&#xff0c;华为前瞻性地启动鸿蒙系统研发项目&#xff0c;彼时或许很少有人能预见到它未来的辉煌。2019 年&#xff0c;鸿蒙系统首个开发者预览版的发布&#xff0c;如同夜空中的一颗璀…

SQL注入--DNSlog外带注入--理论

什么是DNSlog? DNS的作用是将域名解析为IP 而DNSlog就是存储在DNS服务器上的域名信息&#xff0c;它记录着用户对域名访问信息。可以理解为DNS服务器上的日志文件。 多级域名 比如blog.csdn.net&#xff0c;以点为分隔&#xff0c;从右向左依次是顶级域名、二级域名、三级域…

python: Serialize and Deserialize complex JSON using jsonpickle

# encoding: utf-8 # 版权所有 2024 ©涂聚文有限公司 # 许可信息查看&#xff1a;言語成了邀功盡責的功臣&#xff0c;還需要行爲每日來值班嗎 # Serialize and Deserialize complex JSON in Python # 描述&#xff1a;pip install jsonpickle https://github.com/jsonpi…

基于图的去中心化社会推荐过滤器

目录 原论文研究背景与研究意义概述论文所提出算法的主要贡献GDSRec算法原理与流程问题定义去中心化图&#xff08;decentralized graph&#xff09;所提出方法(三种并行建模)用户建模&#xff08;user modelling&#xff09; 模版代码讲解main.py顶层文件&#xff1a;用于集成…

计算机的错误计算(一百六十三)

摘要 四个算式“sin(0.00024/2)^2”、“(1-cos(0.00024))/2”、“(1-sqrt(1-sin(0.00024)^2))/2”以及“sin(0.00024)^2/(22*sqrt(1-sin(0.00024)^2))”是等价的。但是&#xff0c;在 MATLAB 中计算它们&#xff0c;输出不完全一致&#xff1a;中间两个算式的输出中含有错误数…

递归算法专题一>Pow(x, n)

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; public double myPow(double x, int n) {return n < 0 ? 1.0 / pow(x,-n) : pow(x,n); }private double pow(double x, int n){if(n 0) return 1.0;double tmp pow(x,n / 2);return n % 2 0 ? tmp * tmp : tmp …

论文阅读 SimpleNet: A Simple Network for Image Anomaly Detection and Localization

SimpleNet: A Simple Network for Image Anomaly Detection and Localization 摘要&#xff1a; 该论文提出了一个简单且应用友好的网络&#xff08;称为 SimpleNet&#xff09;来检测和定位异常。SimpleNet 由四个组件组成&#xff1a;&#xff08;1&#xff09;一个预先训练的…

实战分享:如何在HP-UX上高效扩容Oracle 12c RAC ASM磁盘

文章目录 Oracle 12c RAC ASM磁盘扩容 for HP-UX一、扩容原因二、扩容前信息三、扩容详细步骤3.1 存储划分LUN&#xff0c;映射到Oracle 12c RAC相关主机组3.2 扫描查看磁盘3.3 检查两节点间的磁盘盘符是否一致3.4 以一个节点为准同步磁盘盘符3.5 更改磁盘属主、权限3.6 查看AS…

如何使用 Matlab 制作 GrabCAD 体素打印切片

本教程适用于已经对 Matlab 和 J750 操作有所了解的用户。 它不是有关如何使用 Matlab 软件或 PolyJet 打印机的全面课程。 Stratasys 为您提供以下内容&#xff1a; 第 1 步&#xff1a;什么是体素&#xff1f; 就像 2D 数字图像由像素组成一样&#xff0c;您可以将 3D 数字形…

CNN—LeNet:从0开始神经网络学习,实战MNIST和CIFAR10~

文章目录 前言一、CNN与LeNet介绍二、LeNet组成及其名词解释2.1 输入2.2 卷积层2.3池化层2.4 全连接层2.5 总结 三、MNIST实战3.1 构建神经网络3.2 数据处理3.3 &#xff08;模板&#xff09;设置优化器&#xff0c;损失函数&#xff0c;使用gpu(如果是N卡有cuda核心)&#xff…

SpringBoot集成Dynamo(3)集成远程dynamo

按照推荐的AWS IAM SSO模式&#xff0c;以文件存储凭证的方式&#xff0c;看下代码是如何访问的。 pom依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"…

半导体、晶体管、集成电路、芯片、CPU、单片机、单片机最小系统、单片机开发板-概念串联辨析

下面概念定义从小到大串联&#xff1a; 半导体&#xff08;semiconductor&#xff09;&#xff1a; 是一类常温下导电性能介于导体与绝缘体之间的材料&#xff0c;这种材料的导电性可以随着外部环境比如电压、温度、光照的变换而改变。常见的半导体材料有硅、锗、砷化镓等。 晶…

学习路之phpstudy--安装mysql5.7后在my.ini文件中无法修改sql_mode

windows环境下使用phpstudy安装mysql5.7后需要修改mysql中的sql_mode配置&#xff0c;但是在phpstudy中打开mysql配置文件my.ini后&#xff0c; 通过查找找不到sql_mode或sql-mode&#xff0c; 此时无法在my.ini文件中直接进行修改&#xff0c;可以使用mysql命令进行修改&#…

了解大模型:开启智能科技的新篇章

在当今科技飞速发展的时代,人工智能(AI)已经成为推动社会进步的重要力量。而在AI的众多技术分支中,大模型(Large Model)以其强大的数据处理能力和卓越的性能,正逐渐成为研究和应用的热点。本文旨在科普大模型的基本概念、与大数据的关系以及与人工智能的紧密联系,帮助读…

多目标粒子群优化(Multi-Objective Particle Swarm Optimization, MOPSO)算法

概述 多目标粒子群优化&#xff08;MOPSO&#xff09; 是粒子群优化&#xff08;PSO&#xff09;的一种扩展&#xff0c;用于解决具有多个目标函数的优化问题。MOPSO的目标是找到一组非支配解&#xff08;Pareto最优解&#xff09;&#xff0c;这些解在不同目标之间达到平衡。…

联想ThinkServer服务器主要硬件驱动下载

联想ThinkServer服务器主要硬件驱动下载&#xff1a; 联想ThinkServer服务器主要硬件Windows Server驱动下载https://newsupport.lenovo.com.cn/commonProblemsDetail.html?noteid156404#D50