如何以编程方式创建图像,以便在 Unity 中与 2D 精灵一起使用?
How do you create images programmatically, for use with 2D sprites in Unity?
我希望能够在 Unity 中以编程方式创建玩家精灵。为此,我有两个具体的用例:
我想使用 'building blocks' 创建角色,即单独的头部、body 和腿,但我不想通过合成每个镜头来给处理器带来压力,所以我想生成一个缓存在内存中的程序化 'sprite sheet'。这允许创建一个简单的定制系统,包括服装、发型等。
我希望某些颜色(即皮肤、衣服等)为 user-selectable。
现在,我不认为我需要一个精确的解决方案,因为我可以自己解决。我只需要一个体面的参考,它展示了如何以编程方式从资源中读取和写入像素颜色值、创建图像以及将生成的图像转换为 2D 精灵。
有人能指出我正确的方向吗?每次我 google 时,我都会得到关于如何在两个 pre-drawn 精灵之间交换的初学者指南。
要以编程方式创建图像,您可以重复创建新的 Texture2D instance, then call Texture2D.SetPixel,或使用 SetPixels、SetPixels32 或 SetPixelData,这样您就不必调用 SetPixel 数千次。
如果你想将它与 SpriteRenderer 一起使用,你需要使用 Sprite.Create with your custom texture, then set SpriteRenderer.sprite。
您可以增加颜色:myPixelColor * Color.red
会将蓝色和绿色通道乘以 0,将红色通道乘以 1,从而得到介于黑色和红色之间的像素。
也就是说,将角色的所有部分绘制为单独的 sprite 对象可能并不像您想象的那么昂贵,而且 SpriteRenderer
带有颜色过滤 属性。不知道你的具体情况。
我希望能够在 Unity 中以编程方式创建玩家精灵。为此,我有两个具体的用例:
我想使用 'building blocks' 创建角色,即单独的头部、body 和腿,但我不想通过合成每个镜头来给处理器带来压力,所以我想生成一个缓存在内存中的程序化 'sprite sheet'。这允许创建一个简单的定制系统,包括服装、发型等。
我希望某些颜色(即皮肤、衣服等)为 user-selectable。
现在,我不认为我需要一个精确的解决方案,因为我可以自己解决。我只需要一个体面的参考,它展示了如何以编程方式从资源中读取和写入像素颜色值、创建图像以及将生成的图像转换为 2D 精灵。
有人能指出我正确的方向吗?每次我 google 时,我都会得到关于如何在两个 pre-drawn 精灵之间交换的初学者指南。
要以编程方式创建图像,您可以重复创建新的 Texture2D instance, then call Texture2D.SetPixel,或使用 SetPixels、SetPixels32 或 SetPixelData,这样您就不必调用 SetPixel 数千次。
如果你想将它与 SpriteRenderer 一起使用,你需要使用 Sprite.Create with your custom texture, then set SpriteRenderer.sprite。
您可以增加颜色:myPixelColor * Color.red
会将蓝色和绿色通道乘以 0,将红色通道乘以 1,从而得到介于黑色和红色之间的像素。
也就是说,将角色的所有部分绘制为单独的 sprite 对象可能并不像您想象的那么昂贵,而且 SpriteRenderer
带有颜色过滤 属性。不知道你的具体情况。