Unity3D - 尝试将“.byte”文件应用为对象纹理时出现问题

本文关键字:纹理 对象 问题 应用 文件 byte Unity3D | 更新日期: 2023-09-27 18:35:06

我正在创建一个 C# 脚本,该脚本在程序启动时将导入的纹理应用于平面(游戏对象)。为此,我将用户选择的图像复制到 assets 文件夹。然后我将其更改为 .byte 扩展名,那是因为我正在使用 TextAsset 来读取和设置对象纹理。

现在我认为失败的是纹理加载,这是完整的脚本代码:

using UnityEngine;
using System.Collections;
using System.IO;
public class setplant : MonoBehaviour {
    GameObject plant;
    void Start () {
        plant = GameObject.Find("plant");
        string currentdirectory = System.IO.Directory.GetCurrentDirectory();
        string pathconfig = (Path.GetFullPath(Path.Combine(currentdirectory, "..''Pick_And_Build''Launcher''Launcher''bin''Debug''tempfiles''"))+"instanciateprogram.dat");
        StreamReader reader = File.OpenText(pathconfig);
        string img = reader.ReadLine();
        reader.Close();
        string textureresourcepath = Directory.GetCurrentDirectory() + "''Assets''" + Path.GetFileNameWithoutExtension(img) + ".byte";
        if(!File.Exists(textureresourcepath))
            File.Copy(img, textureresourcepath);
        TextAsset imageasset = UnityEditor.AssetDatabase.LoadAssetAtPath(Path.GetFileName(textureresourcepath), typeof(TextAsset)) as TextAsset;
        Texture2D tex = new Texture2D(2, 2);
        tex.LoadImage(imageasset.bytes);
        plant.GetComponent<Renderer>().material.mainTexture = tex;
    }
    void Update () {
    }
}

注意:图像将复制到"资产"文件夹,以便目录系统正常工作。

此输出只是一个具有默认材质的平面,而不是基于图像纹理的材质。有什么提示吗?

Unity3D - 尝试将“.byte”文件应用为对象纹理时出现问题

解决方案

这是一个愚蠢的糟糕扩展问题。它不是 .byte ...".bytes"是正确的。无论如何,感谢那些试图帮助我的人。