Exemplo n.º 1
0
    //何かに触れた時
    //private void OnTriggerEnter(Collider other)
    public void OnCollisionEnter(Collision other)
    {
        gameObject.GetComponent <MeshRenderer>().enabled = false;

        //接触したオブジェクトのTargetDestroyを参照 
        TargetDestroy target = other.gameObject.GetComponent <TargetDestroy>();

        //TargetDestroyがあった場合、ターゲットを消去
        if (target)
        {
            target.sendDestroy = true;
        }

        //パーティクルを親オブジェクト(弾)から切り離し、弾が消えた後も爆発がされるようにする。
        explosionParticles.transform.parent = null;

        //爆発パーティクルを再生
        explosionParticles.Play();

        //パーティクルが1週がしたらDestory
        Destroy(explosionParticles.gameObject, explosionParticles.main.duration);

        ////オブジェクトをDestory
        //PhotonNetwork.Destroy(gameObject);
    }
    void Shoot()
    {
        muzzleFlash.Play();
        gunShot.Play();
        RaycastHit hit;

        if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out hit))
        {
            TargetDestroy target = hit.transform.GetComponent <TargetDestroy>();
            if (target != null)
            {
                target.Die();
            }
        }
    }
Exemplo n.º 3
0
    //取得したレベルデザインのデータを元に、ターゲットを配置
    public void SetLevelDesign()
    {
        //レベルを進める
        level++;

        //ターゲットの個数をリセットする
        targetCount = 0;

        //インスタンスを生成
        foreach (LevelDesignData levelData in levelDataList)
        {
            //現在のレベルとは異なるデータは配置しない
            if (levelData.Level != level)
            {
                continue;
            }

            //テーブルデータの位置、回転、大きさをインスタンスに入れる変数を作る
            Vector3    insertPos   = new Vector3(levelData.PosX, levelData.PosY, levelData.PosZ);           //位置を指定する変数をつくる
            Quaternion insertRate  = Quaternion.Euler(levelData.RateX, levelData.RateY, levelData.RateZ);   //回転を指定
            Vector3    insertScale = new Vector3(levelData.ScaleX, levelData.ScaleY, levelData.ScaleZ);     //大きさを指定

            //Rigidbody型で、敵船のインスタンスを生成
            GameObject targetInstance = PhotonNetwork.Instantiate(targetPrefab.name, insertPos, insertRate, 0);
            targetInstance.transform.localScale = insertScale; //大きさを指定

            //パターン2の場合、反復処理を持った敵船を出す
            if (levelData.Pattern == 2)
            {
                targetInstance.GetComponent <IterateMoveTarget>().enabled = true;
            }

            //インスタンスがDestroyされた時に呼ばれるデリゲートを渡す
            TargetDestroy targetDestroy = targetInstance.GetComponent <TargetDestroy>();
            targetDestroy.SendDestroyDelegate(DestroyTargetOne);

            //ターゲットの個数を数える
            targetCount++;
        }
    }