質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

567閲覧

アイテムBをクリックしたときにアイテムAが消えているとアイテムCが現れる処理を実装したい

pipt

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2022/09/27 02:10

実現したいこと

unityでC#を学び始めた初心者です。
CUBE1が消えている状態でCUBE2をクリックすると非表示にされているCUBE3が現れる処理を実装したいです。
ifを利用した条件は書けているのですが、どうすればif()内のCUBEがゲーム内に存在するCUBE1だということを宣言できるのかがわからないため実装できずにいます。(CUBE3が現れる処理についても同様)

前提

CUBE1をクリックするとCUBE1が消える処理は実装済みです。
CUBE2にこの処理を実装したいです。

発生している問題・エラーメッセージ

Assets\ITEM2.cs(17,18): warning CS0219: The variable 'Cube' is assigned but its value is never used

該当のソースコード

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

public class ITEM2 : MonoBehaviour

{//CUBE2をクリックしたときにCUBE3が現れる
//・タイミング:CUBE2をクリックしたとき
//処理:CUBE3が現れる
//処理の条件:CUBE1が消えているとき
// Start is called before the first frame update

//・タイミング:クリックしたとき
public void OnclickObj()
{

   bool Cube = false;
if (Cube = false) //Cubeが消えていたら
{
//処理:CUBE3が現れる
gameObject.SetActive(true); }
}
}

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KomoriGameDev

2022/09/27 03:28

該当のソースコードを以下のように囲って、インデントを使うなどするとコードが見やすくなります。 ```cs コード ```
guest

回答1

0

ベストアンサー

スクリプトから他のオブジェクトを参照したい場合は[SerializeField]という属性を使うと、インスペクタービューから他のオブジェクトの参照を設定できます。
オブジェクトの表示・非表示をSetActiveでされているということであれば、判定はactiveSelfを使うとできると思います。

cs

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class ITEM2 : MonoBehaviour 6{ 7 [SerializeField] private GameObject CUBE1; 8 [SerializeField] private GameObject CUBE3; 9 10 //・タイミング:クリックしたとき 11 public void OnclickObj() 12 { 13 if (!CUBE1.activeSelf) //Cubeが消えていたら 14 { 15 //処理:CUBE3が現れる 16 CUBE3.SetActive(true); 17 } 18 } 19}

投稿2022/09/27 03:34

KomoriGameDev

総合スコア433

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pipt

2022/09/29 08:04

返答が遅れてしまい申し訳ありません。 実現したいことが実現しました![SerializeField]の使い方も教えて下さり、これからの制作に生かせそうです。 ありがとうございました。
KomoriGameDev

2022/09/29 08:06

実現できたなら良かったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問