The name 'foodText' does not exist in the current context
というエラーメッセージがでています。
2Dのアクションゲームで、プレイヤーの空腹状態をUIキャンバス上にスクリプト上の数字を表示したいと思っています。
UIのスクリプト
↓
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerStatusUI : MonoBehaviour
{
void Start() { foodText = this.GetComponent<Text>(); } void Update() { foodText.text = string.Format("くうふく:{0}", foodText.text); }
}
Playerのスクリプト
↓
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerManager : MonoBehaviour
{
public float moveSpeed = 3f;
public Transform attackPoint;
public float attackRadius;
public LayerMask enemyLayer;
Rigidbody2D rb;
Animator animator;
int at = 1;
public AnimationClip[] animations;
private int food = 100; //現在のHP public Text foodText; void Start() { rb = GetComponent<Rigidbody2D>(); animator = GetComponent<Animator>(); } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { Attack(); } Movement(); } void Attack() { animator.SetTrigger("IsAttack"); Collider2D[] hitEnemys = Physics2D.OverlapCircleAll(attackPoint.position, attackRadius, enemyLayer); foreach (Collider2D hitEnemy in hitEnemys) { Debug.Log(hitEnemy.gameObject.name + "に攻撃"); hitEnemy.GetComponent<EnemyManager>().OnDamage(at); } } private void OnDrawGizmosSelected() { Gizmos.color = Color.red; Gizmos.DrawWireSphere(attackPoint.position, attackRadius); } void Movement() { float horizontal = Input.GetAxis("Horizontal"); float vertical = Input.GetAxis("Vertical"); Vector2 position = transform.position; position.x = position.x + 3.0f * horizontal * Time.deltaTime; position.y = position.y + 3.0f * vertical * Time.deltaTime; transform.position = position; }
}
です。アドバイスお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/18 22:49