精华内容
下载资源
问答
  • sprite unity
    千次阅读
    2021-07-29 16:20:21

    Unity软件中,到处有Sprite,它代表的是2D图形对象。问题是,Sprite的英文字面意思,是精灵。两者牛头不对马嘴呀!!

    其实呢,这是有渊源的。

    在计算机图形学中,咱们翻译Sprite应该叫精灵图。它指的是,当一张二维图像集成进场景中,成为整个显示图像的一部分时,这张图就称为精灵图

    精灵图”一词首次作为图形术语出现,是在德州仪器的9918(A)视频显示处理器上。使用“精灵图”作为术语,是因为精灵图并不是帧缓冲中位图数据的一部分,而是“悬浮”于帧缓冲中数据之上,不影响其中数据,就像精灵飘在上面一样。^^

    更多相关内容
  • 2022-04-30 Unity核心2——Sprite

    千次阅读 2022-04-30 22:18:36
    文章目录一、Single 图片编辑二、Multiple 图片编辑三、Polygon 多边形编辑四、Sprite Renderer 精灵渲染器五、Sprite Creator 精灵创造者六、Sprite Mask 精灵遮罩七、Sorting Group 排序分组八、Sprite Atlas 制作...


    ​ 顾名思义,Sprite Editor 就是精灵图片编辑器,它主要用于编辑 2D 游戏开发中使用的 Sprite 精灵图片

    ​ 它可以用于编辑,图集中提取元素,设置精灵边框,设置九宫格,设置轴心(中心)点等等功能

    ​ 新版本 Unity 需要安装 2D Sprite 包才能使用 Sprite Editor

    ​ 点击 Sprite Editor,进入编辑模式

    一、Single 图片编辑

    (一)Sprite Editor

    ​ 基础图片设置(右下角窗口)

    ​ 主要用于设置单张图片的基础属性

    1. Name:图片名字
    2. Position:在图片中的偏移位置和宽高。单张图片无法设置,默认左下角位置为 (0, 0)
    3. Border:边框,用于设置九宫格的 4 条边
    4. Pivot:轴心(中心)点位置
    5. Pivot Unit Mode:轴心点单位模式
      • Normalized:标准化模式,0 ~ 1 表示百分比
      • Pixels:像素模式
    6. Custom Pivot:自定义轴心点,Pivot 为 Custom 时可以设置

    (二)Custom Outline(决定渲染区域)

    ​ 自定义边缘线设置,可以自定义精灵网格的轮廓形状

    ​ 默认情况下不修改都是在矩形网格上渲染,边缘外部透明区域也会被渲染,浪费性能

    ​ 使用自定义轮廓,可以调小透明区域,提高性能

    1. Snap:将控制点贴在最近的像素周围
    2. Outline Tolerance:轮廓点的复杂性和准确性,0 ~ 1,值越大轮廓点越多,越准确
    3. Generate:根据 Outline Tolerance 生成网格轮廓

    ​ 我们也可以手动添加点,自定义编辑点的位置,从而手动控制网格

    (三)Custom Physics Shape(决定碰撞判断区域)

    ​ 自定义精灵图片的物理形状,主要用于设置需要物理碰撞判断的 2D 图形,它决定了之后产生碰撞检测的区域

    ​ 和 Custom Outline 设置类似,但设置的是物理碰撞的网格

    (四)Secondary Textures(为图片添加特殊效果)

    ​ 次要纹理设置,可以将其它纹理和该精灵图片关联,着色器可以得到这些辅助纹理然后用于做一些效果处理,让精灵应用其它效果

    ​ 需要结合 Shader 使用

    二、Multiple 图片编辑

    ​ Multiple 图集元素分割

    ​ 当我们的图片资源是图集时,我们需要在设置时将模式设置为 Multiple,这时我们可以使用 Sprite Editor 自带的功能进行图集元素分割

    ​ 打开 Sprite Editor,可看见如下界面。左上角的 Slice 表示如何对该图进行分割,其中的 Type 表示 Unity 切割该图片的类型

    (一)Automatic:自动切割(常用)

    1. Pivot:单张图片轴心点的位置
    2. Custom Pivot:自定义轴心点
    3. Method:如何处理现有对象
      • Delete Existing:替换掉已经选择的矩形
      • Smart:尝试创建新矩形同时保留或调整现有的矩形
      • Safe:添加新矩形而不更改任何已经存在的矩形

    (二)Grid By Cell Size:按单元格大小分割

    1. Pixel Size:单元格宽高
    2. Offset:偏移位置
    3. Padding:盒边缘的偏移位置
    4. Keep Empty Rects:是否保留空矩形
    5. Pivot:单张图片轴心点的位置
    6. Custom Pivot:自定义轴心点
    7. Method:如何处理现有对象
      • Delete Existing:替换掉已经选择的矩形
      • Smart:尝试创建新矩形同时保留或调整现有的矩形
      • Safe:添加新矩形而不更改任何已经存在的矩形

    (三)Grid By Cell Count:按行列数分割

    1. Column & Row:行数和列数
    2. Offset:偏移位置
    3. Padding:盒边缘的偏移位置
    4. Keep Empty Rects:是否保留空矩形
    5. Pivot:单张图片轴心点的位置
    6. Custom Pivot:自定义轴心点
    7. Method:如何处理现有对象
      • Delete Existing:替换掉已经选择的矩形
      • Smart:尝试创建新矩形同时保留或调整现有的矩形
      • Safe:添加新矩形而不更改任何已经存在的矩形

    ​ 同时,我们也可以自己在主图上画出一个矩形进行手动切割

    :切割去除图片矩形边缘多余的透明区域

    三、Polygon 多边形编辑

    ​ 如果我们使用的资源时多边形资源,我们可以在设置时将模式设置为 Polygon,然后可以在 Sprite Editor 中进行快捷设置

    • Slides:多边形边数

    ​ 在设置完多边形后,Polygon 模式下会自动帮我们设置渲染区域 Custom Outline

    ​ 但是一般这种模式在实际开发中使用较少,因为规矩的多边形很少用到

    四、Sprite Renderer 精灵渲染器

    ​ 所有 2D 游戏中游戏资源(除 UI 外)都是通过 Sprite Renderer 让我们看到的,它是 2D 游戏开发中的一个极为重要的组件

    ​ 2D 对象创建的方法:

    • 直接拖入 Sprite 图片
    • 右键创建 Sprite
    • 空物体添加脚本

    (一)参数介绍

    1. Sprite:渲染的精灵图片

    2. Color:定义着色,一般没有特殊需求不会修改

    3. Flip:水平或竖直翻转精灵图片

    4. Draw Mode:

      • Simple:简单模式,缩放时整个图像一起缩放

      • Sliced:九宫格切片模式,十字区域缩放,四个角不变化,一般用于变化不大的纯色图,类似 UGUI 中 Image 的 Sliced

        (需要把精灵的网格类型 Mesh Type 设置为 Full Rect)

      • Tiled:平铺模式,将中间部分进行平铺而不是缩放

        (需要把精灵的网格类型 Mesh Type 设置为 Full Rect)

        • Tile Mode:平铺模式

          Continuous:当尺寸变化时,中间部分将均匀平铺

          Adaptive:当尺寸变化时,类似 Simple 模式,当更改尺寸达到 Stretch Value 时,中间才开始平铺

      • Size:缩放大小,仅当 Draw Mode 为 Sliced 或 Tiled 才显示

    5. Mask Interaction:与精灵遮罩交互的方式

      • None:不与场景中任何精灵遮罩交互
      • Visible Inside mask:精灵遮罩覆盖的地方可见,而遮罩外部不可见
      • Visible Outside mask:精灵遮罩外部的地方可见,而遮罩覆盖处不可见
    6. Sprite Sort Point:计算摄像机和精灵之间距离时,使用精灵中心点 Center 还是轴心点 Pivot,一般情况下不修改

    7. Material:精灵材质

      可以使用一些自定义材质来显示一些特殊效果,一般不用修改

      默认材质是不会受到光源影响的,如果想要受光照影响,可以设置为 Default

    8. Additional Settings:额外设置

      • Sorting Layer:所在排序层
      • Order in Layer:排序层的序号

      也可以直接修改 Sprite 的 Z 轴,因为 2D 游戏中摄像机的模式是正交 Orthographic 的,但修改 Z 轴的优先级小于 Sorting Layer

    (二)代码示例

    GameObject     obj = new GameObject();
    SpriteRenderer sr  = obj.AddComponent<SpriteRenderer>();
    
    // 动态的改变图片
    sr.sprite = Resources.Load<Sprite>("dead1");
    
    // 动态的加载 图集中的图
    Sprite[] sprs = Resources.LoadAll<Sprite>("RobotBoyIdleSprite");
    sr.sprite = sprs[10];
    

    五、Sprite Creator 精灵创造者

    ​ 我们可以利用 Sprite Editor 的多边形工具创造出各种多边形,Unity 也为我们提供了现成的一些多边形,它的主要作用是 2D 游戏的替代资源

    ​ 在等待美术出资源时我们可以用他们作为替代品,有点类似 Unity 提供的自带几何体,替代资源是做 demo 和学习时的必备品

    ​ 在 Project 窗口右键创建各种形状的 Sprite 精灵图片


    ​ 这里的精灵图片都是 Polygon 类型,通过设置边的个数来控制其形状

    六、Sprite Mask 精灵遮罩

    ​ Sprite Mask 是精灵遮罩的意思,它的主要作用就是对精灵图片产生遮罩,制作一些特殊的功能,比如只显示图片的一部分让玩家看到

    ​ Sprite 有颜色的部分会作为遮罩,透明的部分不会

    1. Sprite:遮罩图片

    2. Alpha Cutoff:如果 Alpha 包含透明区域和不透明区域之间的混合(半透明),则可以手动确定所显示区域的分界点(0 ~ 1)

      小于 Alpha Cutoff 的部分不会被显示

    3. Custom Range:自定义遮罩范围

      Font 和 Back 可以定义遮罩影响的层级,遮罩影响的范围是 Back ~ Font 之间,超出这个范围的层级的 Sprite 不会受遮罩影响

    4. Sprite Sort Point:计算摄像机和遮罩之间距离时,使用精灵中心点 Center 还是轴心点 Pivot,一般情况下不修改

    七、Sorting Group 排序分组

    ​ Sorting Group 是排序分组的意思,它的主要作用就是对多个精灵图片进行分组排序

    ​ Unity 会将同一个排序组中的精灵图片一起排序,就好像他们是单个游戏对象一样

    ​ 主要作用是对于需要分层的 2D 游戏用于整体排序

    • 添加三个空物体,分别为 Top、Mid、Bot,表示三个层级,为三者都添加 Sorting Group 组件
    • 将 Top 的 Order in Layer 设置为 2,Mid 的 Order in Layer 设置为 1,Bot 的 Order in Layer 设置为 0
    • 这时,Top 的子物体将显示在最前面,Bot 的子物体将显示在最下面,Mid 的子物体将显示在二者中间

    ​ 注意:

    • 子排序组,先排子对象,再按父对象和别人一起排 (同层和同层比)
    • 多个挂载排序分组组件的预设体之间,通过修改排序索引号来决定前后顺序

    八、Sprite Atlas 制作图集

    ​ 打图集的目的就是减少 DrawCall,提高性能

    ​ 在工程设置面板中打开功能,Edit --> Project Setting --> Editor,选择 Sprite Packer(精灵包装器,可以通过 Unity 自带图集工具生成图集)

    <img sec="https://img-blog.csdnimg.cn/img_convert/2750ee082c6e11f725c137dd6cd6a14c.png)

    • Disabled:默认设置,不会打包图集

    • Enabled For Builds(Legacy Sprite Packer):Unity 仅在构建时打包图集,在编辑模式下不会打包图集

    • Always Enabled(Legacy Sprite Packer):Unity 在构建时打包图集,在编辑模式下运行前会打包图集

      Legacy Sprite Packer 传统打包模式 相对下面两种模式来说 多了一个设置图片之间的间隔距离

      • Padding Power:选择打包算法在计算打包的精灵之间以及精灵与生成的图集边缘之间的间隔距离,这里的数字代表 2 的 n 次方
    • Enabled For Build:Unity 进在构建时打包图集,在编辑器模式下不会打包

    • Always Enabled:Unity 在构建时打包图集,在编辑模式下运行前会打包图集

    (一)创建图集

    ​ 在 Project 窗口中右键选择 Create --> Sprite Atlas,创建图集

    (二)参数介绍

    1. Type:图集类型

      • Master:主图集

        • Include in Build:选中可以在当前构建中包含图集

        • Allow Rotation:选中则将在打包图集时对图片元素进行旋转,可以最大限度提高组合后的图集密度

          (如果是 UI 图集,则禁用此选项,因为打包时会将场景中的 UI 元素旋转

        • Tight Packing:选中此选项将在打包图集时使用图片轮廓来打包而不是根据矩形,可以最大限度地提高组合后的图集密度

        • Padding:图集中各图片的间隔像素

      • Variant:变体类型的图集

        变体图集的主要作用是以主图集为基础,对它进行缩放产生一个新的图集副本。

        • Master Atlas:关联的主图集
        • Include in Build:选中可以在当前构建中包含图集
        • Scale:设置变体图集的缩放因子(0 ~ 1),变体图集的大小是主图集 * Scale 的结果

        如果想使用变体图集的内容,著需要勾选变体图集的 Include in Build,将主图集的此选项禁用即可

    2. Read / Write Enabled:允许通过脚本访问纹理数据

      如果启用,会创建纹理数据的副本,让内存翻倍。没有特殊需求一般不启用

    3. Generate Mip Maps:勾选则会生成 Mipmap,详见 图片导入与图片设置——纹理高级设置 Advanced

    4. sRGB:启用此属性可指定将纹理存储在伽马空间中,默认启用此属性

      对于非 HDR 颜色纹理(如反照率或镜面反射颜色),应始终选中此复选框

      如果纹理存储了有特定含义的信息,并且需要着色器中的确切值(如平滑度或金属度),则应禁用此属性

    5. Filter Mode:纹理在通过 3D 变化拉伸时如何过渡

      • Point:纹理在靠近观察时变为块状
      • Bilinear:纹理在靠近观察时变得模糊,推荐使用
      • Trilinear:与 Bilinear 类似,但纹理也在不同的 Mip 级别之间模糊

    (三)代码示例

    GameObject     obj = new GameObject();
    SpriteRenderer sr  = obj.AddComponent<SpriteRenderer>();
    
    //加载图集资源
    SpriteAtlas spriteAtlas = Resources.Load<SpriteAtlas>("MyAtlas");
    
    //加载图集资源中的某一张小图
    sr.sprite = spriteAtlas.GetSprite("dead1");
    
    展开全文
  • Unity(6)-通过脚本修改图片sprite

    千次阅读 2021-05-27 16:45:01
    通过脚本修改图片sprite

    前言

    通过创建的C#脚本修改原有图片的信息,素材来自爱给网

    Unity版本: 2019.4.26
    Visual Studio版本: 2019

    相关介绍

    unity3d输入与控制——键盘事件

    其他介绍

    微软官方C#函数文档

    Unity官方API文档(英文)

    Unity官方API文档(中文)

    Unity官方用户手册(中文)

    Unity游戏蛮牛API文档(中文)

    Unity教程-C语言中文网

    Unity用户手册-unity圣典

    Unity组件手册-unity圣典

    Unity脚本手册-unity圣典

    上一篇笔记

    Unity(5)-解决Input类无法识别的问题

    下一篇笔记

    Unity(7)-控制2D物体移动

    一、项目结构

    在这里插入图片描述

    二、脚本

    [1]. 挂载脚本

    先创建一个C#脚本,并添加到预制体上

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    [2]. 声明SpriteRenderer

    sprite属性位于SpriteRenderer组件下,所以我们需要先在类中声明一个的SpriteRenderer组件对象

    在这里插入图片描述

    public SpriteRenderer sr;//组件
    

    [3]. 获取SpriteRenderer

    当游戏开始的时候,就会执行Start()的内容获取预制体的SpriteRenderer组件

    	void Start()
        {
            sr = GetComponent<SpriteRenderer>();
        }
    

    [4]. 声明Sprite数组

    声明一个Sprite类型的数组,可以用来存储多个图片的信息
    使用public关键字可以在脚本外部引用图片的信息

    public Sprite[] pic;//图片
    

    [5]. 导入Sprite

    将所需的图片拖动到数组之中,我们脚本内的数组名是pic,在外部会将首字母大写。

    在这里插入图片描述

    在这里插入图片描述

    [6]. 按键监控

    为了防止在Upate()中多次执行图片切换的操作,可以按下按键后才触发图片切换
    你可以参考下面的文章,来理解

    unity3d输入与控制——键盘事件

        void Update()
        {
            if(Input.GetKeyDown(KeyCode.Alpha0))//当按下数字0时
            {
                
            }
            else if (Input.GetKeyDown(KeyCode.Alpha1))//当按下数字1时
            {
    
            }
            else if (Input.GetKeyDown(KeyCode.Alpha2))//当按下数字2时
            {
    
            }
            else if (Input.GetKeyDown(KeyCode.Alpha3))//当按下数字3时
            {
    
            }
            else if (Input.GetKeyDown(KeyCode.Alpha4))//当按下数字4时
            {
    
            }
            else if (Input.GetKeyDown(KeyCode.Alpha5))//当按下数字5时
            {
    
            }
        }
    

    [7]. 切换图片

    切换图片主要是通过[对象名].sprite来修改图片的内容
    srSpriteRenderer组件的对象,数组下标是从0开始

    	void Update()
        {
            if(Input.GetKeyDown(KeyCode.Alpha0))//当按下数字0时
            {
                sr.sprite = pic[0];
            }
            else if (Input.GetKeyDown(KeyCode.Alpha1))//当按下数字1时
            {
                sr.sprite = pic[1];
            }
            else if (Input.GetKeyDown(KeyCode.Alpha2))//当按下数字2时
            {
                sr.sprite = pic[2];
            }
            else if (Input.GetKeyDown(KeyCode.Alpha3))//当按下数字3时
            {
                sr.sprite = pic[3];
            }
            else if (Input.GetKeyDown(KeyCode.Alpha4))//当按下数字4时
            {
                sr.sprite = pic[4];
            }
            else if (Input.GetKeyDown(KeyCode.Alpha5))//当按下数字5时
            {
                sr.sprite = pic[5];
            }
        }
    

    [8]. 全部代码

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Change : MonoBehaviour
    {
        //引用
        public SpriteRenderer sr;//组件
        public Sprite[] pic;//图片
        // Start is called before the first frame update
        void Start()
        {
            sr = GetComponent<SpriteRenderer>();//获取组件
        }
    
        // Update is called once per frame
        void Update()
        {
            if(Input.GetKeyDown(KeyCode.Alpha0))//当按下数字0时
            {
                sr.sprite = pic[0];
            }
            else if (Input.GetKeyDown(KeyCode.Alpha1))//当按下数字1时
            {
                sr.sprite = pic[1];
            }
            else if (Input.GetKeyDown(KeyCode.Alpha2))//当按下数字2时
            {
                sr.sprite = pic[2];
            }
            else if (Input.GetKeyDown(KeyCode.Alpha3))//当按下数字3时
            {
                sr.sprite = pic[3];
            }
            else if (Input.GetKeyDown(KeyCode.Alpha4))//当按下数字4时
            {
                sr.sprite = pic[4];
            }
            else if (Input.GetKeyDown(KeyCode.Alpha5))//当按下数字5时
            {
                sr.sprite = pic[5];
            }
        }
    }
    
    
    展开全文
  • 先介绍一个链接,吃豆人的:http://forum.china.unity3d.com/thread-13546-1-1.html关于地图的制作,我只想记录一个关于尺寸的获取方式:(1)位置(未测):假设从根级(也就是场景级别)到脚本所在的级别为Background -&...

    先介绍一个链接,吃豆人的:

    http://forum.china.unity3d.com/thread-13546-1-1.html

    关于地图的制作,我只想记录一个关于尺寸的获取方式:

    (1)位置(未测):

    假设从根级(也就是场景级别)到脚本所在的级别为

    Background -> Deck -> Target

    脚本被附在 Target 对象上,那么脚本中用以下代码获取 Target 的位置(理论上是这样,未实测,在实际使用过程中发现,Unity应该是先完成了缩放、旋转以后,再进行移动作为最后一步)

    Vector3 posTarget = transform.localPosition

    + transform.parent.localPosition

    + transform.parent.parent.localPosition;

    (2)尺寸:

    这里假设脚本所在的对象为场景级别,也就是根级别。由于我们使用的是 Sprite 完成 2D 元素的表示,那么与 3D 不同,稍微麻烦。有两种方式来获取尺寸:

    1)利用碰撞体获取(未测):

    创建一个 BoxCollider2D, 然后用如下代码获取(未测试,此法为各个博客搜集的,而我不想手动创建那么多碰撞体,因

    为我的地图采用的是寻址方式,而不是碰撞检测方式)

    Vector2 sizeBox = GetComponent().size;          2)直接利用Sprite获取(亲测):

    这也是博主使用的方式,需要使用物体的缩放因子以及sprite的Bound,

    通过此方式获取的尺寸与 localPosition 中的位置是相对应的(位置在0~1的物体尺寸为1),实现代码如下

    float x = transform.localScale.x * GetComponent().sprite.bound.size.x;

    (20161113新增:transform.localScale使用的是本地的缩放因子,也是本人的场景需求。transform.lossyScale可以获取世界坐标系下的缩放因子,以适应世界坐标系下的尺寸)

    获取对象的方法(只提供亲测的方式)

    (1)获取当前对象的子对象

    Transform walls = transform.Find("Walls");(2)获取同级别的对象(测试条件:脚本对象以及目标对象均为场景级别对象)

    GameObject go = GameObject.Find("Hand");

    展开全文
  • Unity 获取Sprite的宽和高

    千次阅读 2022-02-11 14:18:40
    float bound_x = go.GetComponent<SpriteRenderer>().bounds.size.x; float bound_y = go.GetComponent<SpriteRenderer>().bounds.size.y;
  • I truly believe that this asset will drastically transform the way you work with Unity. Take advantage of the lighting fast workflow, tools and awesome combinable effects to create beautiful sprites, ...
  • 1.将SpriteMode改为Multiple 2.开启Advanced 中的Read/Write Enable 选项 3.点击Apply 4.点击Sprite Editor ...6.代码中利用分割出来的图片参考以下博文 Unity的2D图集处理,并切割出一张张小图片 ...
  • SpriteRenderer.Color(r, g, b, a); 前三个参数控制颜色,最后一个控制透明度,取值皆为[0,1]; 0000为白色透明 1111位黑色不透明 实现逐渐透明效果 private SpriterRenderer sp; public float fadeSpeed; void ...
  • unity spritemask实现

    2022-07-15 17:57:10
    spritemask能实现ui上裁剪部分区域或者叫只显示部分区域。这里介绍相关实现
  • All In 1 Sprite Shader 1.9.unitypackage
  • Unity SpriteAtlas实战使用

    千次阅读 2022-06-27 10:26:35
    Unity,SpriteAtals
  • Unity 使用SpriteMask

    2022-06-01 14:46:31
    Unity 遮罩 SpriteMask
  • Unity中的Sprite Editor 可以将一张大图切割成多个sprite。然而如果想要从这么多切割好的子sprite获取某一个sprite 要如何操作呢?本篇文章总结了两个方法以获取图集中的某个子图。 一. 切割图集 这一步,使用...
  • Adobe Photoshop 到 Unity Sprite 转换器 根据 PSD 文档的图层自动生成精灵。 为了处理 psd 文件,请在文件名末尾添加 atlas 后缀。 为了使用 psd 格式,使用了一个开放库 建议 您可以通过窗口/PSD 导入设置更改...
  • 安装使用通过以下git URL安装软件包: https://github.com/Elringus/SpriteGlow.git#package : https://github.com/Elringus/SpriteGlow.git#package...常问问题我可以将效果与SpriteRenderer以外的组件一起使用吗(UI
  • ✨All In 1 Sprite Shader✨ is an all in one solution to add cool popular sprite and UI combinable effects to your project in the easiest and fastest way possible.
  • Unity中的Sprite纹理压缩(Sprite texture compression in Unity)我希望稍微压缩一下我的png sprite textures这样它们就不会占用我为移动设备构建的那么多内存。 因为我使用了很多gif动画,这对我的游戏性能至关重要...
  • 今天做了一个UI界面,...首先,需要知道SpriteAtlas的功能,可以保存一些关于要打包进去的sprite的设置。(详细参数设置的意义有待进一步研究),其中的Objects For Packing可以关联到需要打包进这个已创建图集的Spri...
  • compile_instancing #pragma multi_compile_local _ PIXELSNAP_ON #pragma multi_compile _ ETC1_EXTERNAL_ALPHA #pragma shader_feature _CLOCKWISE_ON #include "UnityCG.cginc" struct appdata_t { float4 vertex...
  • Unity Sprite Atlas使用

    千次阅读 2021-07-14 19:46:40
    1.为什么要用Sprite Atlas。 Sprite Atlas针对现有的图集打包系统Sprite Packer在性能和易用性上的不足,进行了全面改善。除此之外,相比Sprite Packer,Sprite Atlas将对精灵更多的控制权交还给用户。由用户来掌控...
  • unity 2DSprite 边缘发光特效,制作unity 2D游戏很实用!很牛逼的发光效果,sprite 发光效果,点灯元
  • Unity为Image组件动态添加sprite

    万次阅读 2016-11-24 17:10:22
    Image组件的Source Image属性是Sprite类型的,然而图片的type设置为Sprite之后,它包含两个部分(如图): 以1001为例,其第一部分类型为Texture2D,第二部分为Sprite的。 一种动态获取方式(Resources.Load): ...
  • Unity SpriteAtlas的使用

    千次阅读 2022-02-01 13:34:44
    Unity2019.4.28f1c1 例子1:单图片合成图集 创建Sprite Atlas 点击+号添加Sprite 在添加Sprite时其实是可以选择Texture和Texture下的Sprite的,两种方式其实都可以打包加载,经过一些测试,我猜测SpriteAtlas实际...
  • Unity3D Texture2D转换成Sprite格式

    千次阅读 2021-10-08 10:43:13
    Sprite sprite = Sprite.Create(texture2d, new Rect(0, 0, 64, 64), Vector2.zero);
  • unity中texture转化为sprite

    千次阅读 2020-07-06 15:29:18
    //转化 //texture转化为sprite Sprite sprite=Sprite.Create(texture,new Rect(0,0,texture.width,texture.height),new Vector2(0.5f,0.5f)); image.sprite=sprite;
  • Unity里将多个Sprite(精灵图)动态合成一个Sprite

    千次阅读 多人点赞 2021-05-19 15:17:25
    类似于PS里面的图层混合,这将在游戏运行过程中将多个Sprite合并为一个Sprite,可以应用于2D游戏物体或UI。 类似以下的效果: 需要注意的是在图片叠加时不仅仅是覆盖,还可以应用任意的图片混合类型。 2. 这有什么...
  • unity 中,精灵的渲染方式与 3d物体的渲染方式非常相似。 大部分工作由精灵渲染器(Sprite Renderer)组件完成。 我将稍微介绍一下组件正在做什么以及我们如何更改着色器以执行默认精灵渲染器正在执行的一些操作。 ...
  • Unity 2D特效资源包 2DxFX 2D Sprite FX v2.3.7.unitypackage
  • 这里写目录标题MeshSprite用法Sprite和Image的区别 Mesh Unity Mesh基础系列(一)生成网格(程序生成) 从概念上讲,mesh是图形硬件用来绘制复杂事物的的框架。它至少包含一个顶点集合(这些顶点是三维空间中的...
  • 支持的最低Unity版本:2019.3描述Sprite Dicing是的编辑器扩展,它允许将一组较大的sprite纹理拆分为小块,丢弃相同的块,将它们烘焙为atlas纹理,然后在运行时无缝重构原始sprite以进行渲染。 在使用具有相同面积...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,152
精华内容 5,260
关键字:

sprite unity