Unity与CocosCreator对比学习二

一、锚点与适配

1.在Creator中

  • 适配通过锚点、位置和Widget达到适配目的;
  • 锚点是节点在其父节点坐标系中坐标对其点,其x,y范围在[0, 1]之间;
    • 锚点为(0, 0)时在节点自身的左下角,节点坐标指其左下角在父节点中的坐标;
    • 锚点为(0.5, 0.5)时在节点自身的中心,节点坐标指其中心在父节点中的坐标;
    • 锚点为(1, 1)时在节点自身的右上角,节点坐标指其右上角在父节点中的坐标。

注释:下图父节点(红色)锚点为(0, 0)即坐标原点为其左下角

  • 锚点也是节点自身坐标系原点位置;
    • 锚点为(0.5, 0.5)时,其子节点将以其中心点作为坐标原点

注释:下图中子节点(绿色)锚点为(0, 0),即其左下角

  •  Widget组件用于做作对齐操作(一般是相对于父节点的对齐,以下将均以此叙述)
    • 其上、下、左、右四个对其选项分别代表相对于父节点四个方向的对齐距离;
    • 希望上对齐时只设置top即可;
    • 希望左上角对齐时同时设置top和Left即可;
    • 四个方向都设置时,节点尺寸将根据父节点的尺寸变化以满足Widget的对齐设置。

2.在Unity中

  • 通过锚点和轴心实现对齐;
  • 轴心只代表齐在父节点中的坐标位置点;
    • 当轴心为(0, 0)时,其坐标就是其左下角在父节点中的坐标;
  • 锚点的范围和Creator不同,在Unity中锚点的范围在父节点中;
  • 锚点代表其锚定在父节点中的位置,即其坐标原点位置;
    • 最大最小锚点都为(0, 0)时,代表其坐标原点在其父节点的左下角;
    • 最大最小锚点都为(1, 1)时,代表其坐标原点在其父节点的右上角;

  • 锚点也有对齐作用(类似Creator中的Widget组件)
    • 当最小值和最大值不一样时起到该作用;
    • 最小值的x=0.2代表其左侧相对于父节点横向20%位置的对齐,对齐距离可以再设置;
    • 最大值的x=0.8代表其右侧相对于父节点横向80%位置的对齐,对齐距离可以再设置;
    • 最小、最大值的y也是以此类推。

注释:下图中最大最小值的x不同,y相同,所以只有子节点的宽度收到左、右对齐值的影响。

注释:下图中最大的x与最小的x,最大的y与最小的y都不一样,所以子节点尺寸完全受上下左右对齐值影响。

 

二、通过代码修改位置

1.在Creator中

  • 节点的position属性代表其在父节点坐标系中的坐标;
  • 【属性检查器】中的position属性与代码中node的position属性是一致的。

注释:上图中的设置等价于下面的2种代码设置;

// 方法1:
this.node.position = cc.v3(0, 10, 0);
// 方法2:
this.node.x = 0;
this.node.y = 10;
// 注意:下面的方式行不通
this.node.position.x = 0;
this.node.position.y = 10;

2.在Unity中

  • 【检查器】中的x、y、z代表其在父节点中的坐标;
  • 代码中UI节点的RectTransform的anchoredPosition属性也是父节点中坐标;
  • 代码中UI节点的RectTransform的position属性代表世界空间坐标系中的坐标;
  • 代码中transform.position等价于RectTransform的position属性。

// 获取到节点的RectTransform组件
RectTransform rt = this.GetComponent<RectTransform>();
if (rt) { // 按父节点坐标系修改坐标(既:以当前节点的锚点位置为坐标原点)rt.anchoredPosition = new Vector2(100, 100);// 按世界坐标系修改坐标(既:以屏幕左下角为坐标原点)rt.position = new Vector2(100, 100);
}// 通过transform按世界坐标系修改坐标
this.transform.position = new Vector2(100, 100);

三、节点大小修改

1.在Creator中

  • 在【属性检查器】修改节点的size属性的W和H;
  • 在代码中修改节点的width和height属性;
  • 节点挂载widget组件的话参考上述一、中的内容,可能会影响到大小修改。
// 方法1:
this.node.width = 100;
this.node.height = 100;
// 方法2:
this.node.setContentSize(100, 100);

2.在Unity中

  • 在【检查器】中修改节点的宽度、高度属性;
  • 在代码中修改RectTransform的sizeDelta属性;
  • 节点的锚点最大值和锚点最小值不同的话也会影响到尺寸设置(【检查器】中会看不到宽度、高度属性)。

RectTransform rt = this.GetComponent<RectTransform>();
if (rt) {    rt.sizeDelta = new Vector2(100, 100);
}

 

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

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

相关文章

UE4_X光效果设置_法线图影响透明度

UE4_X光效果设置_法线图影响透明度 2019-03-22 13:37 Exponentin 设置轮廓光扩散度 baseReflectFactionIn 设置内部黑色的亮度值。nromal&#xff0c;连接应用一张法线图&#xff0c;Lerp两色插值&#xff0c;给两个数值&#xff0c;制造一个渐变。 法线图影响透明度&#xf…

Python人工智能应用-----文本情感分析(2)

1.神经网络 人工神经网络&#xff0c;也称为神经网络&#xff0c;是机器学习的一个子集&#xff0c;也是最常见的监督学习算法之一。 它模拟了人脑的神经系统对复杂信息的处理机制&#xff0c;允许计算机程序解决人工智能、机器学习和深度学习领域的常见问题。 神经网络的强大…

堆排序解读

在算法世界中&#xff0c;排序算法一直是一个热门话题。推排序&#xff08;Heap Sort&#xff09;作为一种基于堆这种数据结构的有效排序方法&#xff0c;因其时间复杂度稳定且空间复杂度低而备受青睐。本文将深入探讨推排序的原理、实现方式&#xff0c;以及它在实际应用中的价…

Qt报错:C1083 无法打开包括文件: No such file or directory

我用的是VS2019 添加了一个继承自QTextEdit 的新类QMsgTextEdit, 就出现了这样的报错&#xff1a; 我双击ui_TalkWindow.h, 打开这个文件后, 发现&#xff1a; 我就试着打开qmsgtextedit.h&#xff0c;发现&#xff1a; 于是&#xff0c;我就在当前ui_TalkWindow.h文件的目…

015——步进电机模块驱动开发(基于I.MX6uLL、MX-1502和28BYJ-48)

目录 一、电机驱动模块介绍 1.1 特性 1.2 应用范围 1.3 概述 1.4 电气属性 1.5 经典应用线路 二、电机介绍&#xff08;本节内容来自韦东山老师课程资料&#xff09; 三、 代码编写思路 四、 驱动程序 五、应用程序 一、电机驱动模块介绍 1.1 特性  低待机电流 (…

0基础学习Mybatis系列数据库操作框架——自定义分布式缓存器

Mysql这类的数据库&#xff0c;其查询性能往往不能100%扛住我们业务请求量。于是我们一般都会在查询数据库之前&#xff0c;先查询下缓存。如果缓存存在&#xff0c;则直接使用缓存中数据&#xff1b;如果缓存失效&#xff0c;则读取数据库&#xff0c;并将数据记录到缓存中。 …

手动实现Tomcat底层机制+自己设计Servlet

文章目录 1.Tomcat整体架构分析自己理解 2.第一阶段1.实现功能2.代码1.TomcatV1.java 3.调试阶段1.阻塞在readLine导致无法返回结果 4.结果演示 3.第二阶段1.实现功能2.代码1.RequestHander.java2.TomcatV2.java 3.调试阶段1.发现每次按回车会接受到两次请求 4.结果演示 4.第三…

【服务器部署篇】Linux下安装Docker容器

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

【自用笔记】【大数据】

1 mapreduce &#xff08;1&#xff09;Map任务的数量&#xff1a;由输入数据的大小决定的&#xff0c;如文件数量和大小、HDFS块大小以及FileInputFormat的设置等。每个MapSlot可以运行一个Map任务 &#xff08;2&#xff09;Reduce任务的数量&#xff08;分区数&#xff09;&…

配置Mysql集群主从复制报错

配置Mysql集群主从复制报错: 我在master创建了一个数据库&#xff08;demo_ds_0&#xff09;,然后又快速删除了。然后又再次创建了 demo_ds_0, 发现 slave 数据库没有将 demo_ds_0 库同步过来。 后面在 slave 数据库中执行 show slave status 发现 SLave_IO_Running 字段是 …

练习 17 Web [极客大挑战 2019]PHP

常见的网站源码备份文件名和后缀&#xff0c;反序列化攻击 unserialize()&#xff1a;wakeup绕过&#xff0c;private类以及属性序列化后的%00修改 开靶机 提到”备份“ 那看看有没有backup.php啥的 如果网站存在备份文件&#xff0c;常见的备份文件后缀名有&#xff1a;“.gi…

开源代码分享(17)-基于足球队训练算法(Football Team Training Algorithm,FTTA)的组合风速预测

参考文献&#xff1a; [1]Tian Z, Gai M. Football team training algorithm: A novel sport-inspired meta-heuristic optimization algorithm for global optimization[J]. Expert Systems with Applications, 2024, 245: 123088. 1.算法基本原理 足球队训练算法&#xff0…