追加情報ありがとうございます.
解禁情報や成長過程などのデータを管理したいと思ったからです。
つまりセーブデータということですね?
であれば,まずはゲームデータ(リソース)とセーブデータを切り分けて考えなければなりません.
ゲームデータはゲームの動作を定義するもので,予め用意されるものです.
セーブデータは,ゲームをプレイするにあたって生成され,書き換えられていくファイルなので,最初にゲームを起動した際は「空のファイル」または「ファイル自体無い」状態です.
つまり元からあるゲームデータを書き換えてセーブを実現しようというのは,ゲームというもののデータ管理の考え方と噛み合っていないのです.
したがって,セーブが目的であれば,
Resourcesフォルダ内のファイルを読みこんで上書きしていくのではなく,
ゲームデータの置き場所とは別の,セーブデータフォルダを用意して,
・セーブデータフォルダにファイルがあれば読み込んで,ファイルの内容を必要な変数に代入して保持
・進捗をセーブしたい時にセーブ関数を呼び出すと,セーブデータフォルダ内のファイルを上書きする
というようにするのが普通です.
前回の質問で,Application.dataPathで取得出来るパスは,プラットフォームによって書き込み出来ない場合があると書きましたが,書き込みが制限されている理由のひとつとして,ゲーム起動中にゲームデータが上書きされて,ゲームの動作がプレイ中に書き変わってしまわないように制限する目的があるのです.
実装について少し触れますが,
Resources.Loadはファイルの読み込みは出来ますが,保存はできません.
さらにマニュアルによるとResourcesフォルダ内のアセットしか読み込めないようです.
(http://docs.unity3d.com/ja/current/Manual/LoadingResourcesatRuntime.html)
したがってResourcesフォルダ外のセーブデータフォルダのファイルを読み込むにはStreamReaderを使用する必要があると思います.
保存にはStreamWriterを使用しなければなりません.
流れとしては,
・StreamReaderで既存のセーブデータファイルがあれば開く
・内容を読み込み内容を一旦変数に書きうつして閉じる
・(書き写した変数の中身を編集する)
・StreamWriterでセーブデータファイルを開いて内容を書き込んで閉じる.
となります.
上記を踏まえて質問の回答ですが,
・ファイル場所を変えずにCSVを更新する方法はあるのか?
読み込んだファイルと同じファイルパスで保存すれば,場所を変えずに保存できます.
(読み込み時にファイルを開いたままCloseしない状態だと書き込めないという実装上の注意点はありますが.)
今回の肝は3つ目だと思うので,そちらの回答を見て下さい.
・Resource.Loadのパスは相対パスで、StreamRenderは絶対パスで指定しなければならないが、どちらにあわせれば良いのか?(私的にはResources.Loadを使いたい)
読み込むことだけを考えれば,StreamReaderとResource.Loadは,どちらも読み込み機能しかありませんので,どちらでも構いません.
ただし書き込みにはStreamWriterを使わなければなりませんし,前述のようにResourcesフォルダ外であればStreamReaderでなければなりません.
・プラットフォーム関係なくCSVを更新するには?(できればResources.Loadに沿ってやりたい)
これを考えるならば,前提としてファイルの場所が「どのプラットフォームでも書き換え可能な場所」でなければなりません.
その為に,プラットフォームにあわせてパスが勝手に変わってくれるApplication.persistentDataPathが用意されているので,それを使用する他ありません.
プラットフォームが変わればApplication.persistentDataPathが変わるので,StreamReaderを使うしかないと思います.
具体的な方法やコード等が分からなければ聞いてもらえれば後ほど追加でお答えするとして,
その前にまずはセーブデータの扱い方について,ゲームデータと切り分けて考えてみてもらうことは可能でしょうか?
※ 質問内容から少しそれますが,
StreamReaderの代わりにFile.ReadAllText,StreamWriterの代わりにFile.WriteAllTextというものもあります.これらはファイルをCloseする必要がありませんし(ストリーミングしないため),使用方法もより単純です.
CSVファイルにこだわる理由は分かりませんが,セーブが目的なのであれば,UnityにはPlayerPrefsという仕組みが用意されており,これを使用すればファイル読み書きを気にすることなくセーブが実装出来ます.