提示コードはキャラクターの手に付ける武器オブジェクトにアタッチしているWeaponスクリプトです、衝突時OnCollisionEnterが呼ばれて再生するためにInstantiate()していますが一回再生されたら消したいのですがどうすればいいんのでしょうか?
1,メンバ関数があるのではないのかと思って調べましたが見つかりませんそもそもどうすればいいのでしょうか?
2,そもそもInstantiate()は生成する関数なので違うよな気もしますが....情報がないのでそうしました。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Weapon : MonoBehaviour { public GameObject player; private Player p; public GameObject ps; private bool isParticle; private float timelimit = 1.0f; private float time; // Use this for initialization void Start () { p = player.GetComponent<Player>(); isParticle = false; time = 0; } // Update is called once per frame void Update () { // Debug.Log("weapon script"); Debug.Log(time); if(isParticle == true) { time += Time.deltaTime; if (time >= timelimit) { time = 0; isParticle = false; Destroy(ps); } } } private void OnCollisionEnter(Collision c) { Debug.Log("Weapon Collision !"); if (c.gameObject.tag == "Enemy" && p.isAttack_now) { if (isParticle == false) { isParticle = true; Instantiate(ps, transform.position, transform.rotation); } else { } Destroy(c.gameObject); } else { } } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。