前提・実現したいこと
プレイヤーから弾を飛ばし、弾が壁や床、敵に当たったら爆発というシステムを作りたいのですが、爆発の処理が上手く行きません。
弾を飛ばすまではできました。
発生している問題・エラーメッセージ
弾をプレハブから生成して、プレハブに爆発処理のスクリプトをアタッチしているのですが、そのスクリプトが全く起こりません。Start関数のデバッグログすら出ません。プレハブにアタッチしたスクリプトは動かないのでしょうか?
該当のソースコード
C♯
ソースコード
弾のスクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MainSpell : MonoBehaviour
{
public GameObject bulletFire;
public Transform player;
public float bulletSpeed = 80f;
GameObject MainCamera;
AimImage script;
// Start is called before the first frame update void Start() { MainCamera = GameObject.Find("MainCamera"); script = MainCamera.GetComponent<AimImage>(); } // Update is called once per frame void Update() { if (Input.GetButtonDown("ZR")) { GameObject bulletsFires = Instantiate(bulletFire as GameObject); Rigidbody rbFire = bulletsFires.GetComponent<Rigidbody>(); rbFire.velocity = script.bulletDirection / Mathf.Sqrt(Mathf.Pow(script.bulletDirection.x, 2) + Mathf.Pow(script.bulletDirection.y, 2) + Mathf.Pow(script.bulletDirection.z, 2)) * bulletSpeed * 0.9f; rbFire.transform.Rotate(-rbFire.velocity); bulletsFires.transform.position = script.playerRevision; Destroy(bulletsFires, 1.0f); } }
}
プレハブに付けてる爆発のスクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MainSpellFireBall : MonoBehaviour
{
public GameObject bulletFireExplosion;
public void OntriggerEnter(Collider other) { Debug.Log("b"); if (other.CompareTag("Wall") == true) { GameObject bulletsFiresExplosions = Instantiate(bulletFireExplosion as GameObject); Rigidbody rbExplosion = bulletsFiresExplosions.GetComponent<Rigidbody>(); Debug.Log("a"); } } void start () { Debug.Log("c"); }
}
補足情報(FW/ツールのバージョンなど)
2019.4.21f1
回答1件
あなたの回答
tips
プレビュー