敌人的物品掉落

问题描述 投票:0回答:1

我有一些制作太空射击游戏的项目

我想做的是,当敌人被击中时,它会掉落硬币和胶囊之类的物品

这是我的敌人脚本

 void OnTriggerEnter2D(Collider2D col)
    {
        //mendeteksi collision musuh  dengan peswat atau peluru pesawat
        if ((col.tag == "pesawatplayer") || (col.tag == "pelurupesawat"))
        {
            PlayExplosion();
            DropItem(this.transform.position);

            //destroy enemy 
            Destroy(gameObject);
        }
        
    } 

还有这段代码 DropItem()

void Kill()
{
    ItemDrops = new List<GameObject>();
    ItemDrops.Add(Coin);
    ItemDrops.Add(Capsule);
}

public void DropItem(Vector3 pos)
{
    int num = Random.Range (0,ItemDrops.Count);
    GameObject Item = Instantiate(ItemDrops[num],pos, Quaternion.identity) as GameObject;

    //set position of item drop
    Item.transform.position = transform.position;
   
}

希望大家能帮帮我,谢谢

c# unity3d unityscript
1个回答
0
投票

不清楚你在寻求什么帮助。我的解释是,当敌人被炸毁时,你正试图让一个物品产生,但它对你不起作用。

首先,我要做的是创建一个类来管理你有多少硬币。只需在应该附加到您的播放器的 CoinManager 脚本的开头声明“public int coins;”。一种获得金币的方法和一种设置金币的方法。

其次,创建一个具有 sprite2d 和 collider2d 的预制件(我相信这就是它的名字。我现在脑子放屁)。然后为这个预制件创建一个脚本,当它遇到玩家碰撞器时,它将用 += 1 个硬币更新 CoinManager。然后销毁游戏对象。

第三,在敌人脚本上创建一个“public GameObject coinPrefab”引用。在unity中将硬币预制件拖到参数侧边栏上。然后编写一个死亡方法,通过“Instantiate(coinPrefab, new Vector3(0, 0, 0), Quaternion.identity)”销毁当前生成的硬币游戏对象;并通过“destroy()”销毁当前游戏对象(敌人)。

在这里阅读更多相关信息。 https://docs.unity3d.com/Manual/InstantiatingPrefabs.html

© www.soinside.com 2019 - 2024. All rights reserved.