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

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

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

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

Q&A

解決済

1回答

2887閲覧

Unity 「Time.timeScale = 0f;」時の「OnTriggerEnter2D」の挙動について

HGH

総合スコア5

C#

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

0グッド

0クリップ

投稿2020/01/10 06:29

Unity
C#についての質問です。

ショップ画面制作などの挙動についてです。

プレイヤーが特定のオブジェクトに触れると

Time.timeScale = 0f;

でゲームを一時停止、アイテム一覧とカーソル等のプレハブが生成されます。
そうするとBoxCollider2Dトリガーで設定した以下のような動作が全て動かなくなってしまいます。

void OnTriggerEnter2D(Collider2D col){}

アイテムサムネイル(停止)とカーソル(物理使わず移動)が重なるとサムネイルの子オブジェクトのアニメーション(bool)が変わる

と言った内容です。

Time.timeScale = 1f;

の時は動作します。
以下のスクリプトもパネルにアタッチしています。

public class Cursol1 : MonoBehaviour {
GameObject ChildObject;
private AudioSource cursolSe;
public bool cursolOnOff;

// Use this for initialization
void Start () {

ChildObject = transform.GetChild(0).gameObject;
AudioSource[] audioSources = GetComponents<AudioSource>();
cursolSe = audioSources[0];

}

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

if (cursolOnOff) {
ChildObject.SetActive(true);
}
else { ChildObject.SetActive(false);
}

}

void OnTriggerEnter2D(Collider2D col)
{

if (col.gameObject.tag == "Cursol1P")
{
cursolSe.PlayOneShot(cursolSe.clip);
}

}
void OnTriggerExit2D(Collider2D col)
{

if (col.gameObject.tag == "Cursol1P")
{

cursolOnOff = false;

}

}
void OnTriggerStay2D(Collider2D col)
{
if (col.gameObject.tag == "Cursol1P")
{
cursolOnOff = true;

}

}
}

物理は Time.timeScale = 0f; 中は動かしようがないというような記事も見かけたのですが、それでトリガー等も無効になっているのでしょうか?
何か方法がございましたらご教示いただけますと幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Triggerは検知できないかと思います。
他のアプローチで試してみてください。

参考:OnTriggerEnter Not Working with timeScale of 0
https://forum.unity.com/threads/ontriggerenter-not-working-with-timescale-of-0.239717/

投稿2020/01/10 09:29

hogefugapiyo

総合スコア3302

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

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

HGH

2020/01/10 10:05

やはりそうでしたか・・・ RigidbodyとColliderを使わずに衝突判定を実装する方法を探してはいるのですが、他の方法が思いつかず行き詰っておりました・・・
hogefugapiyo

2020/01/14 00:54

そもそもTriggerを利用しないアプローチも考えられるかと思いますので どういったものを作ろうとしているのかをスクショなども交えて質問を修正していただければ誰かが他の解決方法を提示できるかもしれません。
HGH

2020/03/12 13:12

今回はTriggerを使用しない方法で対処致しました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問