下記のコードで、下の方にある「Instantiate」で生成したオブジェクトに力を加えたいのですが、取得できずに困っています。
using System.Collections; using System.Collections.Generic; using UnityEngine; namespace CSharpScript { public class UnkoDandou12 : MonoBehaviour { /// <summary> /// 弾のPrefab /// </summary> [SerializeField, Tooltip("弾のPrefab")] private GameObject bulletPrefab; /// <summary> /// 砲身のオブジェクト /// </summary> [SerializeField, Tooltip("砲身のオブジェクト")] private GameObject barrelObject; /// <summary> /// 弾を生成する位置情報 /// </summary> private Vector3 instantiatePosition; /// <summary> /// 弾の生成座標(読み取り専用) /// </summary> public Vector3 InstantiatePosition { get { return instantiatePosition; } } /// <summary> /// 弾の速さ /// </summary> [SerializeField, Range(1.0F, 20.0F), Tooltip("弾の射出する速さ")] private float speed = 1.0F; /// <summary> /// 弾の初速度 /// </summary> private Vector3 shootVelocity; /// <summary> /// 弾の初速度(読み取り専用) /// </summary> public Vector3 ShootVelocity { get { return shootVelocity; } } Camera Camera = Camera.main; Vector3 UnkoAngle; void Update() { // 弾の初速度を更新 // 弾の生成座標を更新 instantiatePosition = barrelObject.transform.position + new Vector3(0f, 2.5f, 0f); // 発射 if (Input.GetKeyDown(KeyCode.Space)) { // 弾を生成して飛ばす GameObject obj = Instantiate(bulletPrefab, instantiatePosition, Quaternion.identity) as GameObject; Rigidbody rid = obj.GetComponent<Rigidbody>(); UnkoAngle = Camera.transform.rotation * new Vector3(0f, 6f, 25f); rid.AddForce(UnkoAngle, ForceMode.Impulse); // 5秒後に消える Destroy(obj, 5.0F); } } } }
「obj」に生成したオブジェクトを入れているつもりなのですが、実行しても、その後のobjのrigidbodyでの処理が行われません。なぜでしょうか。
生成したオブジェクトにrigidbodyはつけてあります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/15 08:26