所以我试图制作一个完整的精灵,它分为两部分,一个是头部,另一个是身体。
我在检查器中设置了 2 个纹理,并通过我想要的代码创建了另一个纹理。我所做的是获取我想要的身体像素并设置它们。这里没问题,当我想放头部时问题就来了,因为它是 128x128 并且我没有全部使用,所以它会选择这个的透明像素并删除身体的像素。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MSSGameHandler : MonoBehaviour
{
[SerializeField] private Texture2D baseTexture;
[SerializeField] private Texture2D headTexture;
[SerializeField] private Texture2D bodyTexture;
[SerializeField] private Material guestMaterial;
private Sprite mysprite;
private void Awake()
{
Texture2D texture = new Texture2D(512, 512, TextureFormat.RGBA32, true);
Color[] spriteSheetBasePixels = baseTexture.GetPixels(0, 0, 512, 512);
texture.SetPixels(0, 0, 512, 512, spriteSheetBasePixels);
Color[] bodyPixels = bodyTexture.GetPixels(0, 0, 128, 128);
texture.SetPixels(0, 256, 128, 128, bodyPixels);
Color[] headPixels = headTexture.GetPixels(0, 0, 128, 128);
texture.SetPixels(0, 294, 128, 128, headPixels);
texture.Apply();
guestMaterial.mainTexture = texture;
//mysprite = Sprite.Create(texture)
}
}