▼そのUnityの作業、依頼しませんか?
ゲーム開発に使える素材・知識

【Unity】オブジェクトをSetActiveを使って表示・非表示にする【アクティブ・非アクティブ】

オブジェクトをSetActiveを使って表示・非表示にする方法

Unityではオブジェクトを表示・非表示に切りかえることができる。

GameObjectをアクティブな状態にすることでオブジェクトが表示、非アクティブな状態にすることでオブジェクトが非表示にされる。

アクティブな状態の説明と非アクティブな状態の説明、スクリプトを使ってオブジェクトを表示、非表示にする方法を説明する。

オブジェクトがアクティブ(表示)・非アクティブ(非表示)とは

アクティブな状態オブジェクトが表示、コンポーネントは動作
非アクティブな状態オブジェクトが非表示、コンポーネントは一切動作しない

アクティブな状態

ゲームオブジェクトがアクティブな状態

上の画像のようにチェックがついている状態がアクティブな状態。オブジェクトが表示され、そのオブジェクトについているコンポーネントもしっかり動作する。

非アクティブな状態

ゲームオブジェクトが非アクティブな状態

上の画像のようにチェックがついていない状態が非アクティブな状態。オブジェクトが非表示になり、そのオブジェクトについているコンポーネントは一切動作しない。

 

スクリプトでオブジェクトのアクティブ・非アクティブを切り替える

スクリプトでオブジェクトのアクティブ・非アクティブを切り替えるにはSetActiveメソッドを使用する。

現在の状況

ゲームオブジェクトのアクティブな様子
  • CubeとSphere設置してある
  • Cubeにスクリプトがアタッチしてある

Cubeにアタッチされているスクリプトに記述していく。スクリプト名は【Sample.cs】にしてある。

スクリプトのアタッチの仕方がわからない場合はUnityでC#スクリプトを作成してアタッチする方法【基本知識】をご覧いただきたい。

スクリプト例

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

public class Sample : MonoBehaviour
{
    public GameObject sphere;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            sphere.SetActive(true);
        }
        else if(Input.GetMouseButtonDown(1))
        {
            sphere.SetActive(false);
        }
    }
}
GetMouseButtonDown(0)
左クリック時にtrueを返す
SetActive(true)
アクティブ状態にする
GetMouseButtonDown(1)
右クリック時にtrueを返す
SetActive(false)
非アクティブ状態にする

左クリック時にアクティブ状態になり、右クリック時に非アクティブ状態になるようなスクリプトになっている。

 

オブジェクトを格納

Inspectorウィンドウでオブジェクトを格納

GameObject.Findだと非アクティブのオブジェクトを見つけることができないので、publicを使っている。

 

実行

オブジェクトをアクティブ・非アクティブに切り替える

左クリック時にアクティブ状態になり、右クリック時に非アクティブ状態になるようなスクリプトになっている。

 

GameObject.Findでは非アクティブなオブジェクトを取得できない

publicで宣言して、Inspectorウィンドウでオブジェクトを格納した。理由はGameObject.Findだと非アクティブのオブジェクトを取得できないからだ。

気をつけていただきたい。

 

まとめ

  • オブジェクトを非表示にするには非アクティブにすれば良い
  • 非アクティブな状態だとオブジェクトは表示されず、コンポーネントも動作しない
SetActive(true)
アクティブ状態にする
SetActive(false)
非アクティブ状態にする

以上がオブジェクトをSetActiveを使って表示・非表示にする方法だ。

このようなチュートリアルを販売しているので、Unityでゲームを作成している人は購入していただきたい。

>>Unityでもっとゲーム開発する

【Unity3Dサンプルゲーム】うちのポチが危ないところでフリスビーを要求する理由を教えてくれの本記事
【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要【Unityチュートリアル・サンプルゲーム】Unityで3Dゲームを作りたいと考えている人、本やネットにあるUnityのチュートリアルをやってみたけど、いまいちゲームらしくないと思っている人、テキストでも動画でも学びたい人におすすめのチュートリアルです。...
ABOUT ME
さぎのみや
さぎのみや
超書手。現在はUnityメディア「ユニシャー」の運営とゲーム開発がメインです。Unity、ライティング関係のお仕事お待ちしております。 >>詳しいプロフィール >>Amazonほしいものリスト
【Unity3D】新しいサンプルゲーム(チュートリアル)を作りました!!!
Unity有料サンプルゲーム

「Unityで3Dゲームを本格的に作っていきたい!」という人におすすめのチュートリアルとなっています。

画像のようなゲームの作り方を販売しています。色々と応用できるサンプルゲームとなっています。ぜひ、作ってみてください。

詳細
>>【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要

>>BOOTHでこのチュートリアルを見る

【RT・フォローであなたのスキルが上がる】

シェアフォローする

さぎのみやのモチベが上がる

コンテンツの質が上がる

あなたの能力も上がる

あなたの
Twitterでのシェア

であなたの能力が上がります。

>>さぎのみやのツイッター(@saginomiya8)

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください