Category: Programming

UnityのSceneManagerで、シーンが存在するか確認する

Unity 5.3 から追加された、Multi Scene Editingで、シーンを追加する時、同じシーンを何個も追加したくない!ってこと、ありますよね。 「SceneManager.Contains()」的なメソッドがあれば最高なのですが、アクティブなシーンしか取れなかったりとかするんですよねー(GetActiveScene 関数)。 そこで、次のようにしました。しかし、Unity 5.3.1 くらいではOKだったのですが、5.3.2にしたら非推奨になっちゃってw・・ 1234567891011using UnityEngine.SceneManagement;using System.L … Read More

【感動】UnityでC# 6.0 が使えた!!

unity-cs6-copy
追記:朗報Unity 2017 からは、デフォルトで C# 6.0 および .NET 4.6 が使用可能なようです! この記事では Unity 5 での場合を紹介しています。 こんにちはー!! Unityでも、最新の C# 6.0 を使って、async、await とかカッコよくコードを書きたいんだ ლ(´ڡ`ლ) そんなことできないかなーと思って、調べてみました。 そしたら、なんと、ありました!!ので紹介します。 1. リポジトリをダウンロードC# 6.0関係のいろいろが入ったリポジトリをBitbucketからダウンロードします。 https://bitbucket.org/alexzzzz … Read More

UnityでResourcesにあるTextFileを読む

System.IOでFileStream作って・・とかやって、互換性とか難しいのかな・・と思ったら、楽勝でした。TextAssetを使います。 12345void LoadText() { string textfile = "helloworld"; TextAsset tAsset = Resources.Load<TextAsset>(textfile); Debug.Log(tAsset.text);} TextAssetのtextプロパティで取得できます。 … Read More

Unityで、コンポーネント内のフィールドを文字列から動的に変更する

こんにちはー!! Json からUnity2dのステージのデータを取ろうとしています。その時、コンポーネントの値を変えたいと思い、この方法をやりました。Reflectionを使ったりして、結構複雑でした。 ReflectionTest コンポーネントの内容は次のようにします。 これを、GameObject1 にアタッチすればできます。 安全性は・・しかし、コンポーネント内すべてのフィールドにアクセスできるのはちょっとセキュリティが・・・なので、特定の属性(ここではPermitReflection)がついたフィールドのみにアクセスできるようにします。 Reflectionに使ったしたコー … Read More