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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Oculus Quest

Oculus Questは、Facebookの小会社であるOculus VRが開発したVRヘッドセットです。独立型でPCやスマートフォンは不要。6DoFのトラッキングに優れている点が特徴です。すでに販売終了となっていますが、2020年10月には後継のOculus Quest 2が販売されています。

C#

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

Unity3D

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

Unity

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

Q&A

0回答

414閲覧

OnTriggerEnterで接触したときの動作が上手くいかない。

zunzun

総合スコア1

Oculus Quest

Oculus Questは、Facebookの小会社であるOculus VRが開発したVRヘッドセットです。独立型でPCやスマートフォンは不要。6DoFのトラッキングに優れている点が特徴です。すでに販売終了となっていますが、2020年10月には後継のOculus Quest 2が販売されています。

C#

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

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2022/09/29 02:02

編集2022/09/29 14:27

前提

UnityでOculusQuest2のゲームを作っているのですが、Ontrigger関数を使って、接触したオブジェクトの色を赤に変更するとき、触れていないオブジェクトの色が変わってしまいます。また、スティックで移動したときも色が変わってしまいます。

実現したいこと

これの原因を知りたい。
可能であれば接触していないオブジェクトの色が変わらないようにしたい。

該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5 6public class OnTrigger : creatcube 7{ 8 9 10 11 //OnTriggerEnter関数 12 //接触したオブジェクトが引数otherとして渡される 13 void OnTriggerEnter(Collider other) 14 { 15 GameObject.FindGameObjectsWithTag("RFCube"); 16 GetComponent<Renderer>().material.color=Color.white; 17 18 if (rightController == other.gameObject && gameObject.GetComponent<Renderer>().material.color == Color.red) 19 { 20 GetComponent<Renderer>().material.color = Color.white; //コンポーネントを取得しカラーを白に変更する 21 } 22 23 24 Vector3 rHandPos = rightController.transform.position; 25 Vector3 lHandPos = leftController.transform.position; 26 27 rightController = other.gameObject; 28 29 30 if (gameObject.CompareTag("RFCube")) 31 { 32 33 GetComponent<Renderer>().material.color = Color.red; //オブジェクトの色を赤に変更する 34 35 36 } 37 38 39 40 41 GameObject[] cube = GameObject.FindGameObjectsWithTag("RFCube"); //“RFCube”というタグの付いたオブジェクトを検索して取得 42 43 44 45 } 46 47 48 49 //離れたらオブジェクトの色を白にする 50 void OnTriggerExit(Collider other) 51 { 52 53 rightController=other.gameObject; 54 55 gameObject.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f); 56 57 if (gameObject.CompareTag("RFCube")) 58 { 59 GetComponent<Renderer>().material.color = Color.white; //コンポーネントを取得しカラーを白に変更する 60 } 61 62 63 } 64 65} 66

試したこと

接触した瞬間に一度色を元に戻そうとしたがうまくいかなかった。

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

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

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

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

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

Sobasenbei

2022/09/29 05:12

上のスクリプトは誰にアタッチしてるのでしょうか? あと触れたものだけを変更したいのならわざわざtagを使わなくてもいいのでは
KomoriGameDev

2022/09/29 05:27

先日も同じような質問をされていたかと思うのですが、どちらに回答したらいいんでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問