C# activeselfで表示非表示を取得したあと、同じボタンを押して切り替えたい

実現したいこと

スイッチをEキーで押して、ライトをつけたり消したりしたいです。

アニメーションでのやり方がよくわからなかったので、activeselfで分岐を作って、trueならボタンを押したときSetactiveでfalseに、falseならその逆、としたいです。

発生している問題・分からないこと

ついている状態→Eキーを一度押すと消える
(ここまでは想定どおりの挙動)

この後Eキーを押してもライトがつかず消えたままです。

エラーメッセージ

error

1エラーは出ていません。

該当のソースコード

C#

1using System.Collections;2using System.Collections.Generic;3using UnityEngine;4 5public class LightSwitch : MonoBehaviour 6{7 public GameObject light;8 9 void Update()10 {11 12 // もしライトがついていたらEキーを押して消す13 if (light.activeSelf == true)14 {15 if (Input.GetKeyDown(KeyCode.E) )16 {17 // ライトをノン・アクティブ状態にする・・・>ライトが消える18 light.SetActive(false);19 }20 21 // ライトがついていない場合22 else23 {24 if (Input.GetKeyDown(KeyCode.E) )25 {26 // ライトをアクティブ状態にする・・・>ライトがつく27 light.SetActive(true);28 }29 }30 }31 }32}

試したこと・調べたこと

上記の詳細・結果

activeSelfの分岐文は検索で見つけられたのですが、その後にさらに条件文を入れるかたちのものを見つけられませんでした。

補足

unityのバージョンは2022.3.14です。

コメントを投稿

0 コメント