Unity:2D SpriteShape

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.rhkb.cn/news/297443.html

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

相关文章

面试题:MySQL 高可用

&#x1f496; 主从同步 原理 核心&#xff1a;二进制日志 binlog 是 MySQL 的日志&#xff0c;redolog 和 undolog 是 innodo 引擎的日志。 &#x1f496; 分库分表 分类 问题和技术 数据一致性问题 使用分布式事务管理组件&#xff0c;如ShardingSphere的分布式事务功能&…

目标检测——监控下的汽车

一、重要性及意义 首先&#xff0c;车辆检测技术是保证视频监控系统正常运行的基础。通过监控摄像头实时获取的图像&#xff0c;可以自动检测出图像中的车辆&#xff0c;并进行车辆类型的分类和识别。这对于优化城市交通管理、实现智能交通系统具有重要意义。此外&#xff0c;…

通用分布式锁组件

通用分布式锁组件 1 Redisson1.1介绍1.2 为什么要使用Redisson实现分布式锁1.2.1 锁续期的问题1.2.2 获取锁尝试的问题1.2.3 可重入问题 1.3 Wath Dog的自动延期机制1.4 快速了解1.5 项目集成 2 定义通用分布式锁组件2.1 实现思路分析2.2 定义注解2.3 定义切面2.4 使用锁2.5.工…

Macbook文件清理软件 Mac电脑清理垃圾文件怎么清理

为了维护Macbook电脑的系统健康&#xff0c;我们需要定期给电脑进行全面清理&#xff0c;清除系统垃圾文件、软件缓存和系统内存。那么好用的Macbook文件清理软件有哪些呢&#xff1f;今天就给大家介绍几款好用的电脑清理软件并介绍Mac电脑清理垃圾文件怎么清理。 一、Macbook…

代码审计-PHP原生开发篇SQL注入数据库监控正则搜索文件定位静态分析

文章目录 前言1、Bluecms-CNVD-1Day-常规注入审计分析2、emlog-CNVD-1Day-常规注入审计分析3、emlog-CNVD-1Day-2次注入审计分析 前言 挖掘技巧&#xff1a; -语句监控-数据库SQL监控排查可利用语句定向分析 -功能追踪-功能点文件SQL执行代码函数调用链追踪 -正则搜索-(update…

[C#]OpenCvSharp实现直方图均衡化全局直方图局部直方图自适应直方图

【什么是直方图均衡化】 直方图均衡化是一种简单而有效的图像处理技术&#xff0c;它旨在改善图像的视觉效果&#xff0c;使图像变得更加清晰和对比度更高。其核心原理是将原始图像的灰度直方图从可能较为集中的某个灰度区间转变为在全部灰度范围内的均匀分布。通过这种方法&a…

提升工作效率:B端工作台设计基础详解

随着互联网和信息技术的快速发展&#xff0c;越来越多的企业开始以数字化、智能化的方式管理和运营自己的业务。B端工作台设计作为企业应用的重要组成部分&#xff0c;越来越受到重视。本文将从三个方面对B端工作台设计进行全面分析。让我们看看。 1. B端工作台设计原则 B端工…

JVM剖析

0.前言 Java 是当今世界使用最广泛的技术平台之一。使用 Java 或 JVM 的一些技术包括&#xff1a; Apache spark用于大数据处理&#xff0c;数据分析在JVM上运行;用于数据流的Apache NiFi在内部使用的也是 JVM;现代 Web 和移动应用程序开发中使用的React native使用 的也包含…

【C++ STL迭代器】iterator

文章目录 【 1. 迭代器的属性 】【 2. 不同容器支持的迭代器 】【 3. 迭代器的定义方式 】【 4. 实例 】4.1 定义方式&#xff1a;正向迭代器和反向迭代器4.2 迭代器属性&#xff1a;前向迭代、双向迭代、随机迭代4.2 迭代器的遍历方法4.3 auto关键字 自动指定迭代器定义类型 背…

GitHub git push超过100MB大文件失败(write error: Broken pipe)完美解决

问题 在使用git push推送大文件&#xff08;超过了100MB&#xff09;到GitHub远程仓库时提示异常&#xff0c;异常信息如下&#xff1a; fatal: sha1 file <stdout> write error: Broken pipe fatal: the remote end hung up unexpectedly 通过查阅了一些资料&#xff0c…

vscode开发ESP32问题记录

vscode 开发ESP32问题记录 1. 解决vscode中的波浪线警告 1. 解决vscode中的波浪线警告 参考链接&#xff1a;https://blog.csdn.net/fucingman/article/details/134404485 首先可以通过vscode 中的IDF插件生成模板工程&#xff0c;这样会自动创建.vscode文件夹中的一些json配…

【简单讲解下Tauri】

&#x1f308;个人主页:程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

深入解析:链游、DApp、公链、NFT与交易所开发的全景图

随着数字货币和区块链技术的迅速发展&#xff0c;链游开发、DApp开发、公链开发、NFT开发以及交易所开发等领域吸引了越来越多的关注。本文将以3000字的篇幅&#xff0c;对这些领域进行详细解析&#xff0c;探讨它们的意义、应用场景以及未来发展趋势。 链游开发&#xff08;Bl…

k8s部署微服务例子

一、部署服务 需要部署minio、nacos、mysql、consul、elasticsearch、视频解析服务、nfs、skywalking-oap及ui。 二、三个微服务程序 minio服务解析视频-》上传到minio进行存储&#xff0c;构造领域对象信息保存到hive&#xff08;hive on spark&#xff09;异步处理-》元数据…

论文阅读:Walk These Ways: 通过行为多样性调整机器人控制以实现泛化

Walk These Ways: 通过行为多样性调整机器人控制以实现泛化 摘要&#xff1a; 通过学习得到的运动策略可以迅速适应与训练期间经历的类似环境&#xff0c;但在面对分布外测试环境失败时缺乏快速调整的机制。这就需要一个缓慢且迭代的奖励和环境重新设计周期来在新任务上达成良…

(三)LTspice学习交流分析

文章目录 前言一、Edit simulation cmd二、添加激励总结 前言 上一节我们学习了LTspice的安装&#xff0c;很简单&#xff0c;无脑安装 &#xff08;一&#xff09;LTspice简介 &#xff08;二&#xff09;LTspice学习之简介2 今天我们来学习一下LTspice另一个非常重要的仿真功…

动态多目标优化:进化动态约束多目标优化测试集DCP1-DCP9的TruePF(提供MATLAB代码)

一、Evolutionary Dynamic Constrained Multiobjective Optimization Test Suite 以最小化为例,带约束的动态多目标优化问题&#xff08;Evolutionary Dynamic Constrained Multiobjective Optimization &#xff09;的数学描述如下: min ⁡ x ∈ S ( t ) ⊂ R n f ( x , t ) …

微信小程序python+uniapp高校图书馆图书借阅管理系统ljr9i

根据日常实际需要&#xff0c;一方面需要在系统中实现基础信息的管理&#xff0c;同时还需要结合实际情况的需要&#xff0c;提供图书信息管理功能&#xff0c;方便图书管理工作的展开&#xff0c;综合考虑&#xff0c;本套系统应该满足如下要求&#xff1a; 首先&#xff0c;在…

【医学影像数据处理】nii 数据格式文件操作汇总

大部分医学领域数据存储的都是dicom格式&#xff0c;但是对于CT等一类的序号图像&#xff0c;就需要多个dicom文件独立存储&#xff0c;最终构成一个序列series&#xff0c;这样存储就太过于复杂了。 nifti&#xff08;Neuroimaging Informatics Technology Initiative&#x…

专有钉钉微应用埋点以及本地调试埋点总结

最近在对接浙政钉&#xff0c;稳定性监控、通用采集 SDK、基础埋点、基础埋点&#xff0c;每次发布上去&#xff0c;工作人员那边反馈抓取不到信息 稳定性监控代码、通用采集 SDK index.html <!-- 流量稳定监控 S 关于埋点上线打开--><script src"https://wpk-…