アイテムの作成⑤(防御シールド)
![37f43c36 d2df 4274 9e36 baefa2201b50](https://codegenius.org/uploads/slide/image/4781/37f43c36-d2df-4274-9e36-baefa2201b50.jpeg)
![Ce125677 e4a6 49b5 86d0 f86b5af7b01f](https://codegenius.org/uploads/slide/image/4782/ce125677-e4a6-49b5-86d0-f86b5af7b01f.jpeg)
![Bddf1c09 2480 4904 a9b7 c8f91dcb560e](https://codegenius.org/uploads/slide/image/4783/bddf1c09-2480-4904-a9b7-c8f91dcb560e.jpeg)
![88c59b36 8271 40e9 9450 ca0fee7bb92a](https://codegenius.org/uploads/slide/image/4784/88c59b36-8271-40e9-9450-ca0fee7bb92a.jpeg)
![A57c074f 971a 4d64 8435 c11eb3e7396f](https://codegenius.org/uploads/slide/image/4785/a57c074f-971a-4d64-8435-c11eb3e7396f.jpeg)
![A1562d65 82be 444e ade4 e7e3db6fab3e](https://codegenius.org/uploads/slide/image/4786/a1562d65-82be-444e-ade4-e7e3db6fab3e.jpeg)
![Eb510aae 88eb 4738 8ee5 4077b7e70a26](https://codegenius.org/uploads/slide/image/4787/eb510aae-88eb-4738-8ee5-4077b7e70a26.jpeg)
防御シールド
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shield : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip sound1;
public AudioClip sound2;
void Start()
{
Invoke("DestroyShield", 5.0f);
}
private void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "EnemyMissile")
{
Destroy(other.gameObject);
AudioSource.PlayClipAtPoint(sound1, Camera.main.transform.position);
GameObject effect = Instantiate(effectPrefab, other.transform.position, Quaternion.identity);
Destroy(effect, 0.5f);
}
}
void DestroyShield()
{
Destroy(gameObject);
AudioSource.PlayClipAtPoint(sound2, Camera.main.transform.position);
}
}
![8e71bf6e c878 4a72 ad6b 1848c17bdeea](https://codegenius.org/uploads/slide/image/4788/8e71bf6e-c878-4a72-ad6b-1848c17bdeea.jpeg)
![Ae8a02c6 1928 47b9 85f6 7ed0baa24efe](https://codegenius.org/uploads/slide/image/4789/ae8a02c6-1928-47b9-85f6-7ed0baa24efe.jpeg)
![17da9178 e4f6 4fe7 bf1a a6fdc9eda2c2](https://codegenius.org/uploads/slide/image/4790/17da9178-e4f6-4fe7-bf1a-a6fdc9eda2c2.jpeg)
![E09e62b8 8671 463f 9b81 586c508dd680](https://codegenius.org/uploads/slide/image/4791/e09e62b8-8671-463f-9b81-586c508dd680.jpeg)
シールドアイテム
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShieldItem : Item
{
public GameObject shieldPrefab;
private GameObject player;
private Vector3 playerPos;
private void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "Missile")
{
base.ItemBase(other.gameObject);
// プレーヤーの位置情報を取得する。
player = GameObject.Find("Player");
if(player)
{
playerPos = player.transform.position;
// プレーヤーの位置に防御シールドを発生させる。
GameObject shield = Instantiate(shieldPrefab, playerPos, Quaternion.identity);
// 発生させた防御シールドをプレーヤーの子供に設定する(親子関係)
// 親子関係にすることで一緒に動くようになる(ポイント)
shield.transform.SetParent(player.transform);
}
}
}
}
![110189f8 b918 43ca 87f8 3a97a040446a](https://codegenius.org/uploads/slide/image/4792/110189f8-b918-43ca-87f8-3a97a040446a.jpeg)
![Bed33cd6 2a7f 430a 93d5 654a77a93bb2](https://codegenius.org/uploads/slide/image/4793/bed33cd6-2a7f-430a-93d5-654a77a93bb2.jpeg)
【2019版】Danmaku Ⅱ(基礎2/全38回)
他のコースを見る![37f43c36 d2df 4274 9e36 baefa2201b50](https://codegenius.org/uploads/slide/image/4781/37f43c36-d2df-4274-9e36-baefa2201b50.jpeg)
![Ce125677 e4a6 49b5 86d0 f86b5af7b01f](https://codegenius.org/uploads/slide/image/4782/ce125677-e4a6-49b5-86d0-f86b5af7b01f.jpeg)
![Bddf1c09 2480 4904 a9b7 c8f91dcb560e](https://codegenius.org/uploads/slide/image/4783/bddf1c09-2480-4904-a9b7-c8f91dcb560e.jpeg)
![88c59b36 8271 40e9 9450 ca0fee7bb92a](https://codegenius.org/uploads/slide/image/4784/88c59b36-8271-40e9-9450-ca0fee7bb92a.jpeg)
![A57c074f 971a 4d64 8435 c11eb3e7396f](https://codegenius.org/uploads/slide/image/4785/a57c074f-971a-4d64-8435-c11eb3e7396f.jpeg)
![A1562d65 82be 444e ade4 e7e3db6fab3e](https://codegenius.org/uploads/slide/image/4786/a1562d65-82be-444e-ade4-e7e3db6fab3e.jpeg)
![Eb510aae 88eb 4738 8ee5 4077b7e70a26](https://codegenius.org/uploads/slide/image/4787/eb510aae-88eb-4738-8ee5-4077b7e70a26.jpeg)
防御シールド
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shield : MonoBehaviour
{
public GameObject effectPrefab;
public AudioClip sound1;
public AudioClip sound2;
void Start()
{
Invoke("DestroyShield", 5.0f);
}
private void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "EnemyMissile")
{
Destroy(other.gameObject);
AudioSource.PlayClipAtPoint(sound1, Camera.main.transform.position);
GameObject effect = Instantiate(effectPrefab, other.transform.position, Quaternion.identity);
Destroy(effect, 0.5f);
}
}
void DestroyShield()
{
Destroy(gameObject);
AudioSource.PlayClipAtPoint(sound2, Camera.main.transform.position);
}
}
![8e71bf6e c878 4a72 ad6b 1848c17bdeea](https://codegenius.org/uploads/slide/image/4788/8e71bf6e-c878-4a72-ad6b-1848c17bdeea.jpeg)
![Ae8a02c6 1928 47b9 85f6 7ed0baa24efe](https://codegenius.org/uploads/slide/image/4789/ae8a02c6-1928-47b9-85f6-7ed0baa24efe.jpeg)
![17da9178 e4f6 4fe7 bf1a a6fdc9eda2c2](https://codegenius.org/uploads/slide/image/4790/17da9178-e4f6-4fe7-bf1a-a6fdc9eda2c2.jpeg)
![E09e62b8 8671 463f 9b81 586c508dd680](https://codegenius.org/uploads/slide/image/4791/e09e62b8-8671-463f-9b81-586c508dd680.jpeg)
シールドアイテム
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShieldItem : Item
{
public GameObject shieldPrefab;
private GameObject player;
private Vector3 playerPos;
private void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "Missile")
{
base.ItemBase(other.gameObject);
// プレーヤーの位置情報を取得する。
player = GameObject.Find("Player");
if(player)
{
playerPos = player.transform.position;
// プレーヤーの位置に防御シールドを発生させる。
GameObject shield = Instantiate(shieldPrefab, playerPos, Quaternion.identity);
// 発生させた防御シールドをプレーヤーの子供に設定する(親子関係)
// 親子関係にすることで一緒に動くようになる(ポイント)
shield.transform.SetParent(player.transform);
}
}
}
}
![110189f8 b918 43ca 87f8 3a97a040446a](https://codegenius.org/uploads/slide/image/4792/110189f8-b918-43ca-87f8-3a97a040446a.jpeg)
![Bed33cd6 2a7f 430a 93d5 654a77a93bb2](https://codegenius.org/uploads/slide/image/4793/bed33cd6-2a7f-430a-93d5-654a77a93bb2.jpeg)
アイテムの作成⑤(防御シールド)