回復アイテムを取得するとプレーヤーの視界がクリアーになるようにする
![B54a8a98 05c9 45ee 9584 2d1cecaf1ca4](https://codegenius.org/uploads/slide/image/3188/b54a8a98-05c9-45ee-9584-2d1cecaf1ca4.jpeg)
![8d7a6b97 3bbc 42e9 a0ce 2f9cc43705b5](https://codegenius.org/uploads/slide/image/3189/8d7a6b97-3bbc-42e9-a0ce-2f9cc43705b5.jpeg)
プレーヤーの視界を回復させる
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerHealth : MonoBehaviour {
public int playerHP;
public AudioClip damageSound;
private Image damageScreenImage;
private Color color;
void Start(){
damageScreenImage = GameObject.Find("DamageScreen").GetComponent<Image>();
color = damageScreenImage.color;
color.a = 0.0f;
damageScreenImage.color = color;
}
void OnCollisionEnter(Collision other){
if(other.gameObject.tag == "EnemyBullet"){
playerHP -= 1;
Destroy(other.gameObject);
AudioSource.PlayClipAtPoint(damageSound, Camera.main.transform.position);
color.a += 0.1f;
damageScreenImage.color = color;
}
}
public void AddHP(int amount){
playerHP += amount;
if(playerHP > 10){
playerHP = 10;
}
// ★★プレーヤーの視界不良を回復させる。
// a(アルファ値)のデータは「小数」なので、データの型をfloat型に変換する(重要ポイント)
float amountF = (float)amount;
// HP回復量を最大HPで割る(例;HP回復5 / 最大HP10 = 0.5)
color.a -= (amountF / 10);
// a(アルファ値)の最小値は「0」なので、それ未満にならないようにする。
if(color.a < 0){
color.a = 0;
}
damageScreenImage.color = color;
}
}
![9e6893f0 5086 45d7 8e9f 285e544b5fca](https://codegenius.org/uploads/slide/image/3190/9e6893f0-5086-45d7-8e9f-285e544b5fca.jpeg)
![19945c01 edcf 44f7 a9ce 11623915f2e4](https://codegenius.org/uploads/slide/image/3191/19945c01-edcf-44f7-a9ce-11623915f2e4.jpeg)
EscapeCombat
他のコースを見る![B54a8a98 05c9 45ee 9584 2d1cecaf1ca4](https://codegenius.org/uploads/slide/image/3188/b54a8a98-05c9-45ee-9584-2d1cecaf1ca4.jpeg)
![8d7a6b97 3bbc 42e9 a0ce 2f9cc43705b5](https://codegenius.org/uploads/slide/image/3189/8d7a6b97-3bbc-42e9-a0ce-2f9cc43705b5.jpeg)
プレーヤーの視界を回復させる
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerHealth : MonoBehaviour {
public int playerHP;
public AudioClip damageSound;
private Image damageScreenImage;
private Color color;
void Start(){
damageScreenImage = GameObject.Find("DamageScreen").GetComponent<Image>();
color = damageScreenImage.color;
color.a = 0.0f;
damageScreenImage.color = color;
}
void OnCollisionEnter(Collision other){
if(other.gameObject.tag == "EnemyBullet"){
playerHP -= 1;
Destroy(other.gameObject);
AudioSource.PlayClipAtPoint(damageSound, Camera.main.transform.position);
color.a += 0.1f;
damageScreenImage.color = color;
}
}
public void AddHP(int amount){
playerHP += amount;
if(playerHP > 10){
playerHP = 10;
}
// ★★プレーヤーの視界不良を回復させる。
// a(アルファ値)のデータは「小数」なので、データの型をfloat型に変換する(重要ポイント)
float amountF = (float)amount;
// HP回復量を最大HPで割る(例;HP回復5 / 最大HP10 = 0.5)
color.a -= (amountF / 10);
// a(アルファ値)の最小値は「0」なので、それ未満にならないようにする。
if(color.a < 0){
color.a = 0;
}
damageScreenImage.color = color;
}
}
![9e6893f0 5086 45d7 8e9f 285e544b5fca](https://codegenius.org/uploads/slide/image/3190/9e6893f0-5086-45d7-8e9f-285e544b5fca.jpeg)
![19945c01 edcf 44f7 a9ce 11623915f2e4](https://codegenius.org/uploads/slide/image/3191/19945c01-edcf-44f7-a9ce-11623915f2e4.jpeg)
回復アイテムを取得するとプレーヤーの視界がクリアーになるようにする