Unity

【Unity】スプライト画像を読み込む方法

unity-c#-get-sprite

2018年からプログラミング(Unity C#)もたしなみます!

業務ではまったくコードかかないので、ホント趣味になりますが。。。

※ちなみに美術系の大学だったので、プログラミングの基礎的知識はないです。業務でmayaのmelを少し覚えた程度です。なので間違っていたらすみません!

さっそくVisual Studio 2017インストールしまして、C#の本読みながらちょっとずつ勉強していきます。

スプライト画像を読み込む方法

  • 差し替える画像(ブログのprofile画像)

f:id:min0124:20180105205009p:plain

こんな感じ。

インスペクターで指定したスプライト画像に変更する場合

  • GameObject>UI>Imageを作成

  • Imageに下記のコードをアタッチ

using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour
{
Image image;
[SerializeField]
private Sprite sprite;
// Use this for initialization
void Start()
{
image = this.GetComponent<Image>();
image.sprite = sprite;
}
}
  • アタッチ後、Spriteに画像(profile)をアサイン

  • 再生を押すと、Imageの画像(profile)に変化します。

メモ

  • publicにしたくなかったので、[SerializeField]をつけてprivateでもインスペクタに表示できるように

  • imageのコンポーネントに直接アタッチ。別のゲームオブジェクトにつけて GameObject.Find("Image")みたいにして探すのは処理が重い。

ファイルパスからTexture2DやSpriteの読み込み – Qiita

Unity – スクリプトリファレンス: UI.Image.sprite

Assets/Resourcesからスプライト画像を読み込んで変更する場合

using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour {
private Image image;
private Sprite sprite;
// Use this for initialization
void Start () {
sprite = Resources.Load < Sprite > ("profile");
image = this.GetComponent<Image>();
image.sprite = sprite;
}
}

メモ

  • Assets直下にResourcesフォルダを作成し、そのなかにスプライト画像(profile)を格納。Resources.Load < Sprite >()で読み込む。

docs.unity3d.com

まとめ

変数の命名はわざと似たようなのにしました。

いままでは上記のような命名だと混乱したのですが(クラスとメソッドの関係が理解してなかった)、C#の本で学んで、ようやく何を指すのかわかってきました。

英語のフレーズを丸暗記するより(いままで)、文法を理解したほうが応用が効くと思います。

参考書籍

Unityの参考紹介
ABOUT ME
すいみん
東京在住。デザイナー寄りのテクニカルデザイナー。 ブログは技術検証の備忘録として書いています。