以下は自分のスクリプトです。これは自分のプレイヤーの弾に置かれ、自分のプレイヤーが発射し、弾丸が生成され、破壊する敵やブロッカーに命中した後、それ以降のダメージのメッセージを送信すると、他の敵を警告しますが、レベルでは1回だけです(プレイヤーの弾丸が生成されるたびに、毎回アラームは発生しません)。高度なありがとう。レベルで一度だけメッセージを送信する方法Unity3d C#
using System.Collections;
public class player_bullet_mover : MonoBehaviour
{
[HideInInspector]
public Vector3 target;
public GameObject target_object;
public float damage_is;
private player_damage_controller player_damage_script;
// Use this for initialization
void Start()
{
player_damage_script = GameObject.FindObjectOfType (typeof(player_damage_controller)) as player_damage_controller;
if(target == Vector3.zero)
{
Destroy( this.gameObject);
}
transform.LookAt (target);
}
// Update is called once per frame
void Update()
{
this.transform.position = Vector3.MoveTowards (this.transform.position , target, 300 * Time.deltaTime);
}
void OnTriggerEnter(Collider other)
{
if(other.CompareTag("Enemy"))
{
other.SendMessage("damage", 2);
Destroy(this.gameObject);
}
//call alarm_enemies function here but once in a level, not every time, it generate
}
public void alarm_enemies()
{
//send message to enemy script
}
}
[Collisions](https://unity3d.com/learn/tutorials/topics/physics/detecting-collisions-oncollisionenter)を使用して、あなたの弾丸が敵に当たった時を検出し、そのようにしないことを強くお勧めします更新機能で使用します。 – CNuts
実際は私のプロジェクト全体がこのように設計されています。次回はこれを心に留めておきます。 –
次回はありません。これは**非常に悪い**コードです。 'if'ステートメントが真実になるという保証がないので、それが保証されれば全面的に始める必要があります。 – Programmer