C#のunityについての質問なのですが

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
doss

C#のunityについての質問なのですが

#1

投稿記事 by doss » 11年前

相談したいのはunity環境の画像切り替えなのですが、Texture内の画像切り替えはどのようにしたらよろしいのでしょうか。

コード:

using UnityEngine;
using System.Collections;
using UnityEditor;

public class Animal : MonoBehaviour {
	private GameObject animal;
	private bool state;
        private Texture temp;
	// Use this for initialization
	void Start () {
		animal = GameObject.Find("animal");
		this.state = false;
                this.tmp = renderer.material.mainTexture;
	}

	public void ChangeState(bool state){
		this.state = state;
	}

	void OnGUI(){
		if( this.animal.transform.position.y <= 0 ){
			if( GUI.Button(new Rect (50, 50, 100, 100), "Get") )
				Application.LoadLevel("test2");
                if (renderer.material.mainTexture == temp) {
			renderer.material.mainTexture = Instantiate(Resources.Load("画像"));
		} 
		}
	}
	
	// Update is called once per frame
	void Update () {
		if( Input.GetKey( "left" ) == true )
			animal.transform.Translate((float)0.005,(float)0.005,(float)0.0);
		if( this.state == true )
			if( this.animal.transform.position.y >= 0 ){
				this.animal.transform.Translate(0f,-0.005f,0.0f);
				
			}
	}
}
(

コード:

のC#がわからないのでうまくできてなかったら申し訳ないです)
やりたい操作はResourcesフォルダ内の画像をTextureに変換したいというものです。
説明がへたくそですいません。
よろしくお願いします

アバター
せんちゃ
記事: 50
登録日時: 14年前
住所: 江別市東野幌町
連絡を取る:

Re: C#のunityについての質問なのですが

#2

投稿記事 by せんちゃ » 11年前

InstantiateはまずGameObjectを生成する関数なのでうまくいかないのでないかと思われます。
マテリアルのテクスチャを切り替えるだけであればResources.Load( Path ) as TextureでmainTextureにセットすればいけると思います。
ただ、mainTextureを直接変えて画像切り替えを行うのもいかなるものかと思うので4.3以降であればSprite機能があるのでそちらを使って切り替えたほうがパフォーマンス的に良いかもしれません

unity4-3-で追加された-sprite-機能を使ってみよう-その1
ヽ(*゚д゚)ノ カイバー

doss

Re: C#のunityについての質問なのですが

#3

投稿記事 by doss » 11年前

せんちゃさん、素晴らしいご指摘ありがとうございました。
おかげで画像の切り替えがうまい具合にできました。
まだまだC#についての見聞が狭かったようです。

閉鎖

“C言語何でも質問掲示板” へ戻る