Честно говоря, я не могу объяснить, почему это происходит.
Обычно да, это может быть один из способов чтения внешнего файла.
Я предполагаю, что, поскольку ваш файл размещен на другом диске, проект может быть изолирован, поэтому путь интерпретируется как относительный. Честно говоря, никогда не пробовал загружать файлы с разных дисков.
Однако, как правило, я бы сохранил файлы вместе с проектом, которому они принадлежат, и поместил их
Тогда вы получите свой путь, используя
var path = Path.Combine(Application.streamingAssetsPath, "SomeFolder", "77.txt");
или, соответственно,
var path = Path.Combine(Application.persistentDataPath, "SomeFolder", "77.txt");
Для потоковых ресурсов есть несколько особых случаев (например, на Android), когда вам нужно прочитать файл, используя UnityWebRequest.Get
, поскольку он сжимается.
В качестве альтернативы, если это вариант для вас, вы также можете напрямую перетащить его в Assets
(или любую другую папку ниже, кроме специальных, таких как StreamingAssets
, Resources
et c), а затем напрямую перетащить его в папку поле через Инспектор, используя его как (только для чтения) TextAsset
[SerializeField] private TextAsset meshFile;
, а затем доступ к его содержимому через
var lines = meshFile.text.Split('/n');
Также я обобщаю: вы должны сделать огромный круг вокруг Resources
!
Сами Unity настоятельно рекомендуют не использовать его! Это и причины можно найти в Лучшие практики .