从计算机上的文件导入 Sprite 并在可编写脚本的对象实例中引用它
Import Sprite from a file on the Computer and reference it in a Scriptable Object Instance
字符 ScriptableObject
我有一个 ScriptableObject“Character”,我已经创建了它的一个实例。它有一个 Sprite 字段,但我不想在开始游戏之前引用它。
Character.cs
public Class Character : ScriptableObject {
public Sprite mySprite;
}
现在我有一个特定的文件夹,玩家应该在其中放置自定义图像文件(.jpg、.png),比如“我的 Documents/My Game/My 图片”。当玩家按下 UI 中的按钮时,将显示所有图像文件,然后用户可以单击图像,然后在 Character ScriptableObject 实例中引用该精灵。
我还想添加一些要求,例如图片尺寸应为 200x200。
这里需要 3 个部分:
- 正在从磁盘加载文件
- 正在加载从磁盘读取的数据到
Texture2D
- 从纹理创建
Sprite
(1)你可以自己查,从文件中读取字节是微不足道的。
(2) 是 this method
(3) 使用 Sprite.Create()
您的最终代码将如下所示:
File f = //...step 1
Texture2D t = //...step 2
Rect size = new Rect(0, 0, t.width, t.height); //the part of the image to use; whole image
int PIXELS_PER_UNIT = 100; //whatever your other sprites use
Sprite s = Sprite.Create(t, size, Vector2.zero, PIXELS_PER_UNIT, 0, SpriteMeshType.FullRect);
字符 ScriptableObject
我有一个 ScriptableObject“Character”,我已经创建了它的一个实例。它有一个 Sprite 字段,但我不想在开始游戏之前引用它。
Character.cs
public Class Character : ScriptableObject {
public Sprite mySprite;
}
现在我有一个特定的文件夹,玩家应该在其中放置自定义图像文件(.jpg、.png),比如“我的 Documents/My Game/My 图片”。当玩家按下 UI 中的按钮时,将显示所有图像文件,然后用户可以单击图像,然后在 Character ScriptableObject 实例中引用该精灵。
我还想添加一些要求,例如图片尺寸应为 200x200。
这里需要 3 个部分:
- 正在从磁盘加载文件
- 正在加载从磁盘读取的数据到
Texture2D
- 从纹理创建
Sprite
(1)你可以自己查,从文件中读取字节是微不足道的。
(2) 是 this method
(3) 使用 Sprite.Create()
您的最终代码将如下所示:
File f = //...step 1
Texture2D t = //...step 2
Rect size = new Rect(0, 0, t.width, t.height); //the part of the image to use; whole image
int PIXELS_PER_UNIT = 100; //whatever your other sprites use
Sprite s = Sprite.Create(t, size, Vector2.zero, PIXELS_PER_UNIT, 0, SpriteMeshType.FullRect);