【问题标题】:Import Sprite from a file on the Computer and reference it in a Scriptable Object Instance从计算机上的文件导入 Sprite 并在 Scriptable Object 实例中引用它
【发布时间】:2023-03-29 15:10:02
【问题描述】:

字符脚本对象

我有一个 ScriptableObject“Character”,并创建了它的一个实例。它有一个 Sprite 字段,但我不想在开始游戏之前引用它。

Character.cs

public Class Character : ScriptableObject {

public Sprite mySprite;

}

现在我有一个特定的文件夹,玩家应该在其中放置自定义图像文件(.jpg、.png),例如“我的文档/我的游戏/我的图片”。当玩家在 UI 中按下按钮时,将显示所有图像文件,然后用户可以单击图像,然后该精灵将在 Character ScriptableObject 的实例中被引用。

我还想添加一些要求,例如图像的尺寸应为 200x200。

【问题讨论】:

  • 换句话说。我想从计算机的文件中加载。

标签: c# unity3d scriptable-object


【解决方案1】:

这里需要三个部分:

  1. 从磁盘加载文件
  2. 将从磁盘读取的数据加载到Texture2D
  3. 从纹理创建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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2020-07-15
    • 2019-02-27
    相关资源
    最近更新 更多