Unity:2D SpriteShape

news2025/4/7 17:08:44

1.1 简介

Sprite Shape 可以很灵活的更改sprite的轮廓。比如:

它由两部分组成:Sprite Shape Profile、Sprite Shape Controller,需要导入2D Sprite Shape Package.

1.1.1 Sprite导入要求

  • Texture Type - ‘Sprite (2D and UI)’.
  • Sprite Mode - 如果Texture只包含一个sprite,就设置为 ‘Single’ 
  • Mesh Type - 必须是Full Rect.
  • 如果Sprite的在图集里面,需要把图集的Allow RotationTight Packing取消勾选

1.1.2 创建流程

  • GameObject > 2D Object > Sprite Shape,创建一个Sprite Shape,有两个选项:Open/Close,创建的是不闭合或者是闭合的Sprite Shape
  • 它会自动挂载Sprite Shape Controller组件
  • 挂载EdgeCollider或者PolygonCollider开启碰撞

也可以:

  1. Assets > Create > 2D > Sprite Shape Profile创建一个资源文件
  2. 创建Angle Ranges并声明使用的 Sprites
  3. 赋值给Sprite Shape Controller组件

沿着Spline放置对象:

  1. 选择一个sprite添加 Sprite Shape Object Placement组件
  2. 赋值SpriteShapeController
  3. 调节 ratio,start, end points 沿着spline放置sprite.
  4. 勾选Set Normal让sprite沿着法线的方向旋转
  5. SpriteShape Object Placement:
    1. Start Point 必须要小于 End Point, and must be a valid index in the Spline's control points.
    2. 开启Set Normal rotates the Object at normal direction to where the Object is placed along the Spline.
    3. Ratio dictates the distance ratio between the Start and End points where the Object should be placed.
  • Attaching a Collider component

2.1 Sprite Shape Profile

更精确的控制spline上的sprite

PropertyFunction
Control Points-
Use Sprite Borders控制点沿着boder生成,在spite editor中更改Sprite Borders。
Fill-
Texture如果是闭合的shape,设置中间填充的texture,如果不是闭合的,没有影响
Offset中间填充的texture,往里/往外的偏移

Angle Range tool

Angle Ranges (tool)
创建Angle Ranges,并声明每一个angle range中使用的sprite
Start (degrees)开始的角度
End (degrees)结束的角度
Order在sprite有重叠时的优先级. 越小越先渲染
Sprites对于选中的angle range,能使用的sprite
Corners-
(All Corner options)每个拐角处的sprite

2.1.1 Open Shape

 

2.1.2 Closed Shape

中间可以填充,filling下设置的texture

2.1.3 Creating Angle Ranges

angle range 可以创建多个,即:0-360°可以划分成多个angle range。

上面是创建angle range的方法,拖动滑动条,浏览不同angle range的sprite list

 

2.2 Sprite Shape Controller

用来控制,sprite shape的outline,把profile拖到场景中时,它会自动挂载上去

PropertyFunction
Profile使用的Sprite Shape Profile
Edit Spline

Spline-
Detail设置生成的轮廓的网格质量,质量越高,面越多
Open Ended设置shape 闭合/开启
Adaptive UV默认打开,当sprite发生扭曲时,比如转弯,也会渲染sprite,只不过sprite会扭曲,比如缩小,关闭该属性时,如果两个controll point之间的距离<sprite width,就不会渲染
Enable Tangents当需要切线计算时,打开,比如使用2D Universal Render Pipeline.
Corner Threshold设置拐角的阈值,如果在这个值以内,就渲染角度的sprite,默认30°
Fill-
Fill Tessellation (C# Job)Generate fill geometry in C# Job.
Stretch UV开启后,Unity stretch the UV 来填充中间区域
Custom Geometry Creator通过定义Scriptable Object,来自定义填充的图形
Custom Geometry Modifier通过定义Scriptable Objects,来修改生成的图形.

Pixels Per Unit

( Stretch UV 关了才生效)

填充的单位密度,相当于tile的数量,值越大,要求的原始texture就越小

 

Height增加controll point处Sprites的高度,[0.1,4]
Corner设置controll point处,是否渲染corner sprite,默认Automatic
  Disabled不渲染
 Automatic如果它两个邻居都是Linear Point Mode,才渲染
  Stretched拉伸corner sprite
Sprite Variant设置controll point的sprite
  • Additional Collider settings
    • 只能挂载上edge collider或者polygon collider
Collider-
Update Collider开启后,如果sprite shape有改变,collider也会随之改变
Offsetcollider相对于shape的偏移,[-0.5,0.5]
Detail设置collider的边数的细节

2.2.1 Fill Tessellation (C# Job)

不管Open还是Close Shape都是由edge和fill texture组成,这俩都是在c#的job中生成的,避免影响主线程,如果关闭了该选项,就会在主线程中生成。

它的开启有两个条件:

  1. Sprite Shape 不能有重叠的点,或者特别相近的点
  2. Sprite Shape的边不能和其它的边重叠

如果有这两种情况,就不用勾选该选项,使用c#在主线程中生成fill区域,对于动态生成的,尽量开启该选项。

  • 推荐使用c# LibTess.NET生成的场景:
    • 勾选Sprite Shape Controller的Cache Geometry属性,它会在editor下生成并缓存下来,在运行时加载

2.2.2 Generating Custom Geometry

Generating Custom Geometry | 2D SpriteShape | 10.0.3

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

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

相关文章

【动手学深度学习】深入浅出深度学习之RMSProp算法的设计与实现

目录 &#x1f31e;一、实验目的 &#x1f31e;二、实验准备 &#x1f31e;三、实验内容 &#x1f33c;1. 认识RMSProp算法 &#x1f33c;2. 在optimizer_compare_naive.py中加入RMSProp &#x1f33c;3. 在optimizer_compare_mnist.py中加入RMSProp &#x1f33c;4. 问…

C#/WPF Inno Setup打包程序

Inno Setup介绍 Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年&#xff0c;现在已经更新到Inno Setup 6了。Inno Setup是一个十分简单实用的打包小工具&#xff0c;可以按照我们自己的意愿设置功能&#xff0c;稳定性也很好。 官方网址&#xff1…

考研人千万不能犯的错误——什么情况下求极限可以直接带入值?

博主最近在复习考研的过程中&#xff0c;做了武忠祥老师的每日一题发现有一个题型错的很集中&#xff0c;就是关于极限数值带入的问题&#xff0c;相信也有不少的宝子容易在这种题型上犯错&#xff0c;今天带大家梳理总结一下常见的计算极限时容易犯的错误 极限的四则运算定义…

harmonyOS安装ohpm

下载 下载地址 HUAWEI DevEco Studio和SDK下载和升级 | 华为开发者联盟 初始化 注意&#xff1a;初始化ohpm前&#xff0c;需先完成node.js环境变量配置 1.解压文件&#xff0c;进入commandline-tools-windows-2.0.0.2\command-line-tools\ohpm\bin 2.执行&#xff1a; init.ba…

第二十三章 Git

一、Git Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同&#xff0c;它采用了分布式版…

设计模式总结-建造者模式

建造者模式 模式动机模式定义模式结构模式分析建造者模式实例与解析实例&#xff1a;KFC套餐 模式动机 无论是在现实世界中还是在软件系统中&#xff0c;都存在一些复杂的对象&#xff0c;它们拥有多个组成部分&#xff0c;如汽车&#xff0c;它包括车轮、方向盘、发送机等各种…

点亮创意:ChatGPT如何搭桥DALL-E图像编辑新纪元

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

力扣爆刷第111天之CodeTop100五连刷41-45

力扣爆刷第111天之CodeTop100五连刷41-45 文章目录 力扣爆刷第111天之CodeTop100五连刷41-45一、232. 用栈实现队列二、4. 寻找两个正序数组的中位数三、31. 下一个排列四、69. x 的平方根五、8. 字符串转换整数 (atoi) 一、232. 用栈实现队列 题目链接&#xff1a;https://le…

Kubernetes(k8s):精通 Pod 操作的关键命令

Kubernetes&#xff08;k8s&#xff09;&#xff1a;精通 Pod 操作的关键命令 1、查看 Pod 列表2、 查看 Pod 的详细信息3、创建 Pod4、删除 Pod5、获取 Pod 日志6、进入 Pod 执行命令7、暂停和启动 Pod8、改变 Pod 副本数量9、查看当前部署中使用的镜像版本10、滚动更新 Pod11…

【Unity灶台】食品加工系统模型搭建

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

黑马鸿蒙笔记

目录 27.网络连接-Http请求数据 28.网络连接-第三方库axios 29.数据持久化-用户首选项 27.网络连接-Http请求数据 Http常见 GET一般与String配合&#xff0c;POST&#xff0c;PUT&#xff0c;DELETE与Object配合 28.网络连接-第三方库axios 29.数据持久化-用户首选项 不行&a…

C语言 | Leetcode C语言题解之第9题回文数

题目&#xff1a; 题解&#xff1a; bool isPalindrome(int x) {if(x < 0)return false;long int sum0;long int nx;while(n!0){sumsum*10n%10;nn/10;}if(sumx)return true;elsereturn false; }

labview如何创建2D多曲线XY图和3D图

1如何使用labview创建2D多曲线图 使用“索引与捆绑簇数组”函数将多个一维数组捆绑成一个簇的数组&#xff0c;然后将结果赋值给XY图&#xff0c;这样一个多曲线XY图就生成了。也可以自己去手动索引&#xff0c;手动捆绑并生成数组&#xff0c;结果是一样的 2.如何创建3D图 在…

Qt 使用QPropertyAnimation动画效果的图片浏览器

文章目录 效果图功能点代码解析图片切换显示与动画效果图片缩放 总结 效果图 功能点 加载指定路径下的所有图片并显示滑动滑动条查看指定图片&#xff0c;也滚轮切换图片滑动条缩略图加入动画效果图片可以进行缩放移动查看 代码解析 整体来说相对&#xff0c;显示图片的是一…

小组分享内容第一部分:总览+HttpClients

目录 1.网络爬虫的作用&#xff08;人话&#xff09;&#xff1a; 2.使用的工具 3.不使用程序进行网页信息的获取的操作步骤 4.如何使用程序来进行上述操作 1.打开浏览器 2.输入网址 3.发送请求 4.获取响应 5.判断响应是否成功 6.获取响应里需要的内容 7.记得最后关…

window中如何在Anaconda虚拟环境中安装compressai

1, 进入CompressAI的Github代码页下载压缩包并解压到自己的项目路径 2&#xff0c;打开anaconda的prompt命令行&#xff0c;激活需要安装的虚拟环境&#xff0c;然后进入compressai文件夹&#xff0c;比如下操作&#xff1a; 3&#xff0c;输出安装命令行 pip install -e . -…

设计模式总结-简单工厂模式

简单工厂模式 创建型模式创建型模式概述创建型模式种类 简单工厂模式模式定义模式动机模式结构模式分析模式实例与解析实例一&#xff1a;简单电视机工厂实例二&#xff1a;权限管理 模式优缺点简单工厂模式的优点简单工厂模式的缺点 模式适用环境模式扩展 小结 创建型模式 创…

方案评估(Solution Evaluation)

背景 Evaluation 这个词更喜欢的翻译是评估&#xff0c;评价和估计&#xff0c;估计就是瞎蒙&#xff0c;忽悠&#xff0c;不确定的、动态的世界&#xff0c;想做确定性的方案很难的&#xff0c;那么就整一些数据指标经验来相互折腾、忽悠&#xff0c;以至于大家都信了&#x…

使用labelImg标注yolov5数据集并在kaggle中使用yolov5

使用labelImg标注yolov5数据集并在kaggle中使用yolov5 文章目录 前言一、labelImg标注1.1. 下载exe文件1.2. labelImg 下载&#xff08;源码&#xff09;1.3. 环境配置1.4. 使用1.4.1. 设置1.4.2. 导入图片并标注 二、在kaggle中使用2.1. 下载源码2.2. 编辑配置文件2.3. 将压缩…

2024年第八届人工智能与虚拟现实国际会议(AIVR 2024)即将召开!

2024年第八届人工智能与虚拟现实国际会议&#xff08;AIVR 2024&#xff09;将2024年7月19-21日在日本福冈举行。人工智能与虚拟现实的发展对推动科技进步、促进经济发展、提升人类生活质量等具有重要意义。AIVR 2024将携手各专家学者&#xff0c;共同挖掘智能与虚拟的无限可能…