Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!

unity

unityでボタンクリックで他のオブジェクトの色を変更するスクリプト

投稿日:

Pocket

うも大石です。

 

あなたはunityでボタンをクリックしたら、

他のオブジェクトの色を変更するという

スクリプトを書きたいですか?

 

 

この記事を読めば、あなたはボタンクリックで

他のオブジェクトの色を変更するスクリプトを

書くことができるようになります。

 

ということでボタンクリックで色を

変更したいなら読んでみてください。

 

 

スポンサードサーチ

unityでボタンクリックで他のオブジェクトの色を変更する手順とスクリプト

 

ということで本題です。

ボタンクリックで他のオブジェクトの色を

変更するには以下をやりましょう。

 

  1. ボタンを表示する
  2. ボタンにスクリプトをつける
  3. ボタンクリック時に色変更の記述を書く
  4. ボタンと関数を関連づける

 

この4つをやればokです。

 

 

とゆうことで順番に説明します。

 

あなたの進行状況で、

上記もう済んでる手順に関しては

飛ばして読んでください。

 

ボタンを表示する

 

まずボタンを表示するですが、

これは簡単です。

 

Hierarchy > UI > Button

とクリックしてボタンオブジェクトを

追加しましょう。

 

上記やると画面上にボタン出るので

完了です。

 

ボタンにスクリプトをつける

 

次にそのボタンオブジェクトに、

スクリプトコンポーネントをつけてください。

 

canvas > button と

Hierarchy上では表示されてるので、

buttonをクリックしadd componentです。

 

スクリプト内にクリックしたら色を変更する記述を書く

 

で次にスクリプトの記述に入ります。

 

まずボタンをクリックしたら、

何らかの処理を行うという

記述を書きます。

 

で、unityでは、OnClick()という関数が

用意されてまして、記述例としては以下の感じです。

 


public void OnClick(){
 ここにボタンクリック時の処理の記述;
}

 

この記述だけでボタンを押したらOO

の処理をするという機能が追加できます。

 

便利です。

 

他のオブジェクトの色を変更する記述をかく

 

で次に、色を変更する記述の説明に入ります。

 

今回はボタンを押したら他のオブジェクトの

色を変更する、というのが趣旨です。

 

そのためには以下をやる必要があります。

 

  1. 色を変えたいオブジェクトを取得
  2. 色を変えたいオブジェクトのrendererを取得
  3. 色を変える記述を書く

 

説明していきます。

 

色を変えたいオブジェクトを取得

 

ボタンクリックで他のオブジェクトの色を

変えるには、

 

まず色を変えるオブジェクトの取得が必要になります。

 

というのも取得してやらないと

ボタンクリックでどのオブジェクトの色を

変えればいいかスクリプトで命令できないのです。

 

 

ということで、このオブジェクトの色を

変えてくれと書けるよう、GameObject型で変数宣言し、

対象となるオブジェクトを取得しましょう。

 

コード例としては以下です。


public class button : MonoBehaviour
{
	GameObject enemy; //ここで色を変えたいオブジェクトを宣言

    // Start is called before the first frame update
    void Start()
    {
    	enemy = GameObject.Find("enemy");   //色を変えるオブジェクト取得
    	
    }

 

.Find()のカッコ内には、

対象となるオブジェクト名を書きましょう。

cubeのままならcubeでokです。

 

でこれでオブジェクトが取得できます。

 

色を変えたいオブジェクトのrendererを取得

 

ですがまだこれでは色はかえれません。

次にRendereコンポーネントを

取得する必要があります。

 

ちなみにRendererとは、

オブジェクトの見た目に関する

コンポーネントでして、

 

これを取得すると色とか見た目をいじれます。

 

 

RendererコンポーネントはGetComponentで取得

すればokです。

 

ということでコード例としては以下です。


public class button : MonoBehaviour
{
	GameObject enemy;
	Renderer enemyinfo; //rendere取得用

    // Start is called before the first frame update
    void Start()
    {
    	enemy = GameObject.Find("enemy");   
    	enemyinfo = enemy.GetComponent<Renderer>();
    }

 

これでRendererを取得できました。

 

色を変える記述をかく

 

で次に、実際に色を変える記述です。

 

色を変える記述は以下です。


  public void OnClick(){	
    	enemyinfo.material.color = Color.blue;
    }

 

上記のように書くと、ボタンをクリックすると、

取得したオブジェクトの色が青に変わるという

記述になります。

 

 

はい、ということで全体の記述をまとめると以下です。


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class button : MonoBehaviour
{
	GameObject enemy;
	Renderer enemyinfo;

    // Start is called before the first frame update
    void Start()
    {
    	enemy = GameObject.Find("enemy");   
    	enemyinfo = enemy.GetComponent<Renderer>();
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void OnClick(){
    	
    	enemyinfo.material.color = Color.blue;
    }

}

 

という感じです。

 

ボタンと関数を関連づける

 

で、記述に関してはこれで終了なのですが、

これだけではまだボタンクリックしても動かないです。

 

最後に関連付けという作業が必要です。

 

ということで、

まずはボタンオブジェクトをクリックし、

インスペクターをみてください。

 

 

するとButtonというコンポーネントが

ボタンオブジェクトにくっついてるので、

その中にあるOn Click()というとこをみてください。

 

ボタンコンポーネント

 

画像でいうといっちゃん下です。

 

で、そこのNoneのとこに、

Hierarchyにあるボタンをドラッグして、

Noneのとこまでひっぱってドロップしましょう。

 

するとボタンが関連付けされます。

 

 

で、次に右をみてもらって、NO functionと

書いてるところをクリックしましょう。

 

すると最初にボタンに追加しておいた

スクリプト名が一番下に表示されます。

 

 

でスクリプト名をクリックし、

OnClick()というのが出るので、

それをクリックしましょう。

 

そしたら完成です。

 

わーい、お疲れ様でした。

 

 

それでは再生ボタンを押してみましょう。

次にボタンをクリックしてみましょう。

 

無事に指定したオブジェクトの色が

青色に変われば成功です。

 

スポンサードサーチ

まとめ

 

はいということで、まとめになります。

 

ボタンをクリックした時に他のオブジェクトの

色を変えるには、以下のことをしましょう。

 

  1. ボタンを表示する
  2. ボタンにスクリプトをつける
  3. ボタンクリック時に色変更の記述を書く
  4. ボタンと関数を関連づける

 

するとボタンクリックで色を変えれます。

 

 

ちょいと難しかったかもですが、

これでやれることの幅が広がるので、

ぜひマスターしてみてください。

 

それでは読んでもらってありがとうございました。

 

大石

 

-unity

==========

Unity用の3Dモデルを探してる方、欲しい方ご注目!

自作のUnity用3Dモデルをリーズナブルな価格で販売してますので、以下のリンクより一度ご覧ください。

Unity用3Dモデルを見てみる

==========


スポンサードサーチ

関連記事

no image

unityで動く床にのるとオブジェクトが滑る場合の解決法

どうも、大石です。   unityで動く床を作ったのに オブジェクトが上に乗ると滑って 一緒に付いて行かずに落ちる、、   みたいなことで悩んでますか?     …

no image

unityで矢印キーでオブジェクトを移動させるには(3d)

どうも、チャーさんです。 あなたはunityで矢印キーで3dオブジェクトを 移動させたいですか?   この記事では矢印キーによる3dオブジェクトの 移動を実現する方法を書いてるので、 読めば …

no image

unityで弾の発射の向きを敵に向ける方法(自動)

どうも大石です。   あなたはunityで弾を発射するときの向き をコントロールしたいと思っていませんか?   この記事を読めば、あなたはunityで 弾を敵に向かって発射させれる …

no image

unityで敵を移動させる方法(詳細にわかりやすく説明します)

どうも、チャーさんです。   あなたはunityで敵を移動させたい、 そう思っていませんか?   コライダーなどでもできるが、他の方法が ないかと探してませんか?   & …

no image

unityでターン制のゲームを作るにはコレを使いましょう

どうも、チャーさんです。 あなたはunityでターン制ゲームを作りたい そう思っていませんか?   この記事ではunityでターン制のゲームを 作る方法を書いています。   なので …

no image

unityでoculus questの開発をしたい方必見!手順まとめました

どうも、チャーさんです。   あなたはunityでoculus questの 開発をしたい、そう思ってませんか?     この記事ではunityでoculus quest …

no image

unityでprefabを複製する(スクリプトで)方法

どうも、大石です。 あなたはunityでprefabをスクリプトで複製 したいですか?   この記事を読めば、あなたはprefabをスクリプトで 複製できるようになります。   な …

no image

unityでのダンジョンの簡単な作り方(コードコピペで作れます)

どうも、チャーさんです。   あなたは、unityでダンジョンを作りたいと 思っていませんか?   この記事ではunityでのダンジョンの作り方を 説明してまして、本記事を読めば …

no image

unityでカメラを追従させる簡単なコードと方法の説明をする記事

  どうも、チャーさんです。   あなたはunityでカメラの追従をさせたい、 こう思ってませんか?   この記事ではオブジェクトをカメラで追従させる、 (カメラが追いか …

no image

unityで地形を作る方法「初心者でもできるように丁寧に説明してます」

どうも、チャーさんです。   あなたはunityでいい感じの地形を作りたい。 でも、やり方がわからない。と悩んでいませんか?   この記事では、unityで地形を作る方法を、 ステ …

no image

unityで弾の発射位置をコントロールする方法

どうも、大石です。 あなたはunityで弾の発射位置を自由に コントロールしたいですか?   この記事を読めばあなたの好きな位置から 弾を発射できるようになりますよ。   スポンサ …

no image

blenderで作ったモデルをunityにインポートする方法「簡単です」

どうも、チャーさんです。   あなたはblenderで作ったものを、 unityで表示(インポート)したいと、 思っていませんか?   この記事では、あなたが作ったblenderの …

no image

unityアセットの使い方を初心者でもわかるように説明。

  どうも、チャーさんです。   あなたはunityのアセットの使い方が、 わからず困ってませんか?   この記事ではunityのアセットの使い方を、 1から説明してます …

no image

unityでオブジェクトを回転させる方法「1分でできます」

どうも、チャーさんです。   あなたはunityでオブジェクトを回転させたいですか?   unityでゲームなど作るとオブジェクトを 回転させたい場面がありますよね。   …

no image

[unity]foreach内でget componentを使う方法

どうも、チャーさんです。   この記事ではunityのforeachループで get componentする方法を書きます。     なのでこの記事を読めば、 &nbsp …

最新記事

チャーさん

プログラミング・筋トレ・unity系の記事などを書いてます。

大学卒業後→開業→個人事業主7年目ぐらいです。webサイト制作したり、unityでゲーム開発しております。

youtubeもやってまして、主にプログラミング動画とかunity系の動画をあげてるので見てください。