Unity3d と C# を使用しており、次の 2 つのスクリプトがあります。
スクリプト 1:
using UnityEngine;
using System.Collections;
public class PlayerAttack : MonoBehaviour {
public GameObject target;
// Update is called once per frame
void Update () {
if(Input.GetKeyUp(KeyCode.F))
{
Attack();
}
}
void Attack() {
EnemyHealth eh = (EnemyHealth)target.GetComponent("EnemyHealth");
eh.HealthRulse(-10);
}
}
スクリプト 2:
using UnityEngine;
using System.Collections;
public class EnemyHealth : MonoBehaviour {
public int curHealth = 100;
public int maxHealth = 100;
public float healthBarLeangth;
// Use this for initialization
void Start () {
healthBarLeangth = Screen.width / 2;
}
// Update is called once per frame
void Update () {
HealthRulse(0);
}
void OnGUI() {
GUI.Box(new Rect(10,40,Screen.width / 2 / (maxHealth / curHealth),20),curHealth + "/" + maxHealth);
}
void HealthRulse(int adj){
if ( curHealth < 0)
curHealth = 0;
if (curHealth > maxHealth)
curHealth = maxHealth;
if(maxHealth < 1)
maxHealth = 1;
curHealth += adj;
healthBarLeangth = (Screen.width / 2) * (curHealth / (float)maxHealth);
}
}
「スクリプト 2」で定義され、GetComponent によって「スクリプト 1」で呼び出された関数「HeathRulse()」がエラーをスロー
しています - 「保護レベルのため、メソッドにアクセスできません」
私はそれについて助けが必要です...