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.mzph.cn/news/796993.shtml

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

相关文章

【C++ STL】简述

文章目录 【 1. 容器 】【 2. 迭代器 】【 3. 适配器 】 C 的 STL&#xff08; 全称是 Standard Template Library 标准模板库&#xff0c;也叫 泛型库&#xff09;是一套功能强大的 C 模板类&#xff0c;提供了 通用的模板类和函数&#xff0c;这些模板类和函数可以实现多种流…

spring之AOP(面向切面编程)之详结

AOP面向切面编程&#xff0c;一种编程范式&#xff0c;指导开发者如何组织程序结构 作用&#xff1a; 在不惊动原始设计的基础上为其进行功能增强 核心概念 代理&#xff1a;SpringAOP的核心本质是采用代理模式实现的连接点&#xff1a;程序执行过程中的任意位置&#xff0…

Python项目21:一个简单的记账系统(收入+支出+查询)

------------★Python练手项目源码★------------ Python项目源码20&#xff1a;银行管理系统&#xff08;开户、查询、取款、存款、转账、锁定、解锁、退出&#xff09; Python项目19&#xff1a;学员信息管理系统&#xff08;简易版&#xff09; Python项目18&#xff1a;…

【Linux-运维】查看操作系统的指定端口占用情况确定端口是哪个服务占用

不同的查看端口占用的方法&#xff0c;应用场景有所不同 一、查询某个端口是否被占用&#xff1f;lsof -i:端口号lsof -i:协议 查看某个协议的占用情况netstat -tlnp|grep 端口号ss -tlnp|grep 端口号fuser 端口号/协议ls -l /proc/$(lsof -t -i:端口号)|grep exe 二、确认指定…

统计天数C++

1.统计天数 问题描述 给定两个年份 n*,*m&#xff0c;问&#xff0c;两个年份之间有多少天&#xff08;包括年份 n 和年份 m&#xff09;&#xff1f; 输入格式 第一行包含两个整数 n*,m&#xff0c;含义与问题描述中相同。 输出格式 输出共一行&#xff0c;包含一个整数…

Android14系统go版添加微件功能

一般normal版软件自带微件功能&#xff0c;但是go版没有这个功能&#xff0c;但是客户有时会要求也要加上这个微件功能&#xff0c;实现的方法修改如下&#xff1a; 1. frameworks/base diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index…

docker compose部署项目—踩坑记录

问题1&#xff1a;创建容器设置的mysql 的密码未生效 创建容器用 MYSQL_ROOT_PASSWORD配置了密码&#xff0c;但是密码没生效&#xff0c;还是原来的密码。 mysql:image: mysql:8.0container_name: mysql_testports:- "3306:3306"environment:TZ: Asia/ShanghaiMYSQ…

C++ 【原型模式】

简单介绍 原型模式是一种创建型设计模式 | 它使你能够复制已有对象&#xff0c;客户端不需要知道要复制的对象是哪个类的实例&#xff0c;只需通过原型工厂获取该对象的副本。 以后需要更改具体的类或添加新的原型类&#xff0c;客户端代码无需改变&#xff0c;只需修改原型工…

JS第九天

今天是第九天&#xff0c;学习了JS中的设置日期和倒计时&#xff0c;计时器以及验证码倒计时&#xff0c;那么话不多说我们开始今天的学习吧 一、日期设置 1.1日期创建 调用 new Date() 来创建一个新的 Date 对象。在调用时可以带有一些参数&#xff0c;创建一个 Date 对象&…

[ 云计算 | AWS ] ChatGPT 竞争对手 Claude 3 上线亚马逊云,实测表现超预期

文章目录 一、前言二、Claude 3 介绍以及相关测试细节三、在亚马逊云科技上体验 Claude 33.1 在 Amazon Bedrock 服务中配置 Claude 33.2 为聊天配置使用 Claude 3 模型3.3 Caude 3 Sonet 聊天体验 四、文末总结五、参考文献 一、前言 3月4号&#xff0c;Anthropic 发布了号称…

第十四届蓝桥杯C/C++大学B组题解(一)

1、日期统计 #include <bits/stdc.h> using namespace std; int main() {int array[100] {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6,…

鸿蒙Lottie动画-实现控制动画的播放、暂停、倍速播放、播放顺序

介绍 本示例展示了lottie对动画的操作功能。引入Lottie模块&#xff0c;实现控制动画的播放、暂停、倍速播放、播放顺序、播放到指定帧停止或从指定帧开始播放、侦听事件等功能&#xff0c;动画资源路径必须是json格式。 效果预览 使用说明&#xff1a; 进入页面默认开始201…

Python人工智能应用---中文分词词频统计

目录 1.中文分词 2.循环分别处理列表 &#xff08;1&#xff09;分析 &#xff08;2&#xff09;代码解决 3.词袋模型的构建 &#xff08;1&#xff09;分析需求 &#xff08;2&#xff09;处理分析 1.先实现字符串的连接 2.字符串放到新的列表里面 4.提取高频词语 &…

一些好玩的东西

这里写目录标题 递归1.递归打印数组和链表?代码实现原理讲解二叉树的 前 中 后 序位置 参考文章 递归 1.递归打印数组和链表? 平常我们打印数组和链表都是 迭代 就好了今天学到一个新思路–>不仅可以轻松正着打印数组和链表 , 还能轻松倒着打印(用的是二叉树的前中后序遍…

Linux基础篇:Linux第三方软件仓库——可以让Linux变得有趣的软件仓库

Linux第三方软件仓库——可以让Linux变得有趣的软件仓库 一、epel源介绍 EPEL&#xff08;Extra Packages for Enterprise Linux&#xff09;源是一个由Fedora项目组维护的第三方软件仓库&#xff0c;为企业级Linux发行版&#xff08;如Red Hat Enterprise Linux&#xff08;…

清明作业 c++

1.封装一个类&#xff0c;实现对一个数求累和阶乘质数 #include <iostream>using namespace std; int mproduct(int a){if(a>1){return a*mproduct((a-1));}else{return 1;} } class number{int a; public:number():a(5){};number(int a):a(a){}void set(int a){thi…

c#编程基础学习之数组

目录 数组排序数组System.Linq 命名空间其他创建数组的方法 数组 数组用于在单个变量中存储多个值&#xff1b; 声明数组需定义带方括号[]的变量类型&#xff1b; string[] cars {"MARRY", "BOB", "Far", "Aada"}; //字符串数组 in…

ChatGLM-6B实战微调(P-tuning-v2、LORA)

硬件准备 GPU: NVIDIA Tesla A30 24GB python 3.10 pytorch 1.11 transformers 4.27.1 实验环境 Change your pip source pip config set global.extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple # Writing to /opt/conda/pip.conf pip config set global.inde…

【嵌入式学习】FreeRTOS day04.05

练习 1.总结二进制信号量和计数型信号量的区别&#xff0c;以及他们的使用场景。 二进制信号量&#xff1a;信号量的数值只有0和1&#xff08;用于共享资源的访问&#xff09; 计数性信号量&#xff1a;计数型信号量的值一般是大于或者等于2&#xff08;生产者和消费者模型&am…

软件设计原则:开闭原则

定义 开闭原则&#xff08;Open-Closed Principle, OCP&#xff09;是面向对象设计的基本原则之一&#xff0c;由 Bertrand Meyer 提出。它指出软件实体&#xff08;类、模块、函数等&#xff09;应该对扩展开放&#xff0c;对修改封闭。这意味着软件应该设计成在不修改现有代…