赤いボール(Player)が十字キーで転がって、青玉(SmallBall1)の真下にくると(赤玉がゲームオブジェクトcolliderにぶつかると)
青玉が緑玉になる(マテリアル変更)、というスクリプトにしたいのですが、
OnTriggerEnter関数が
プレビュー再生時に実行されてしまいます。。。(衝突時も一応実行されているようです)
何がおかしいか、ご教示お願い致します。
using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(Rigidbody))] public class collider : MonoBehaviour{ public GameObject mychange; public Material _material; void OnTriggerEnter(){ //gameObject取得 mychange = GameObject.Find("SmallBall1"); //今の色コンソールに出力 Debug.Log(mychange.GetComponent<Renderer>().material.color); //緑に変更 mychange.GetComponent<Renderer>().material = _material; //変更後の色コンソールに出力 Debug.Log(mychange.GetComponent<Renderer>().material.color); } }
補足 ちなみに、OnCollisionEnter関数になおし(isTriggerをOFF済)たら、衝突したタイミング”だけ”反応してくれます。
でもすり抜けてほしいので、OnTriggerEnterが使いたいのです…

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/11 04:56
2018/07/11 05:04