前提・実現したいこと
いわゆる動物タワーのようなものが作りたいと思い、指定した動物をプレハブに入れる。
マウスをクリックしている間は重力の影響をうけない(RigidBodyはStatic)
マウスを離したら重力を付ける。(RigidBodyはDynamicに切り替え)
という事をしたいのですが
デバッグログでマウスが離れた判定は出来ていているもののRigidBodyの切り替えが動作せず。
マウスを離してもオブジェクトが落ちてくれません。
該当のソースコード
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5 6public class Move : MonoBehaviour 7{ 8 9 public Transform characterParent;//親 10 public Rigidbody2D rbChoicePrefab; //選ばれたプレハブのリジッドボディーを入れる 11 12 public GameObject MovePrefab; //選ばれるプレハブ 13 private GameObject ChoicePrefab; //選ばれたプレハブを格納する箱 14 15 // 16 private Vector3 mouseposition; 17 private Vector3 screenToWorldPointPosition; 18 public GameObject characterTrance; 19 20 void Start() 21 { 22 //選んだオブジェクトchoice prefabに入れる 23 24 rbChoicePrefab = MovePrefab.GetComponent<Rigidbody2D>(); 25 rbChoicePrefab.bodyType = RigidbodyType2D.Static; 26 27 //プレハブの生成 28 ChoicePrefab = MovePrefab; 29 Instantiate(ChoicePrefab, characterTrance.transform.position, Quaternion.identity, characterParent); 30 31 } 32 void Update() 33 { 34 35 // 左クリック押している間ずっとif文の中を実行 36 if (Input.GetMouseButton(0)) 37 { 38 //マウスに追従して親オブジェクトを動かす 39 mouseposition = Input.mousePosition; 40 mouseposition.z = 10f; 41 mouseposition.y = 300f; 42 screenToWorldPointPosition = Camera.main.ScreenToWorldPoint(mouseposition); 43 characterTrance.transform.position = screenToWorldPointPosition; 44 } 45 46 47 // 左クリックを離した瞬間にif文の中を実行 48 if (Input.GetMouseButtonUp(0)) 49 { 50 // 処理 51 rbChoicePrefab = ChoicePrefab.GetComponent<Rigidbody2D>(); 52 rbChoicePrefab.bodyType = RigidbodyType2D.Dynamic; 53 54 Debug.Log("hanasita"); 55 } 56 } 57}
#自分で調べたことや試したこと
void start内の
rbChoicePrefab = MovePrefab.GetComponent<Rigidbody2D>();
rbChoicePrefab.bodyType = RigidbodyType2D.Static;
こちらのコードを消した所スタート時にオブジェクトが落ちてしまいます。
指定したプレハブの設定はstaticにしています。
#使っているツールのバージョンなど補足情報
unity2018 3.6f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/08 07:56