最近畢設做個小游戲,需要做一個點擊按鈕回應的功能,需要呼叫其他腳本,但是我在start函式中實體化后,在回應事件函式中呼叫卻顯示空物件例外,著實不明白怎么回事。
之前有個int【】number的問題,后來我硬是弄出來了,但是現在這個playerAttack我確實沒辦法了。
上代碼
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AbilityUp : MonoBehaviour
{
public Image[] dialogBox;
public Text[] dialogBoxText;
public Button[] buttons;
int a, b, c;
public int[] number;
private PlayerAttack playerAttack;
private PlayerHealth playerHealth;
private GameData gameData;
private PlayerUp playerUp;
private string[] texts;
private int caseuse;
// Start is called before the first frame update
void Start()
{
gameData = GameObject.FindGameObjectWithTag("GameData").GetComponent<GameData>();
playerUp = GameObject.FindGameObjectWithTag("PlayerAttack").GetComponent<PlayerUp>();
playerAttack = GameObject.FindGameObjectWithTag("PlayerAttack").GetComponent<PlayerAttack>();
playerHealth = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerHealth>();
doRange();
}
// Update is called once per frame
void Update()
{
}
void p()
{
print(playerAttack.name);
}
void doRange()
{
for (int i = 0; i < 3; i++)
{
number[i] = Random.Range(0, 4);
//判斷沒有獲取相同的key值
if (i != 0)
{
for (int j = 0; j < i; j++)
{
if (number[i] == number[j])
{
i -= i;
}
}
}
}
}
public void SetWords()
{
for(int i=0;i<3;i++)
{
dialogBoxText[i].text = gameData.Load(number[i]);
if(i==0)
{
a = number[i];
}
if(i==1)
{
b = number[i];
}
if(i==2)
{
c = number[i];
}
}
}
public void button1()
{
// playerUp.Up(number[0]);
this.gameObject.SetActive(false);
}
public void button2()
{
p();
Up(b);
this.gameObject.SetActive(false);
}
public void button3()
{
Up(c);
this.gameObject.SetActive(false);
}
private void A()
{
}
private void Up(int i)
{
if (i == 0)
{
playerAttack.attackToHealth += 2;
}
if (i == 1)
{
playerAttack.Critcal += 0.1f;
}
if (i == 2)
{
playerAttack.Critcal_Hit += 0.2f;
}
if (i == 3)
{
playerHealth.maxHealth = (int)((int)playerHealth.maxHealth * 1.2);
}
if (i == 4)
{
playerAttack.PlayerDamage += 1;
}
if(i==5)
{
print("yes");
}
}
}
最離譜的是,我在start函式中實體化后debug是有輸出的,特么到下面就沒了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279440.html
標籤:Unity3D
上一篇:求大佬指點TFT LCD抖動問題
下一篇:求助,關于射線的問題,請下面的圖