【发布时间】:2016-01-02 23:57:45
【问题描述】:
我正在尝试实施一个随时间推移损坏的系统,但 Unity 一直说“尝试调用方法...无法调用。”我要调用的方法使用参数“Collider coll”,但根据我的研究,如果该方法有参数,则无法调用。
这是我的代码:
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;
public class DamageOverTime : MonoBehaviour
{
public int PHP; //PHP = Player Health from PlayerHealth.cs script.
public int Damage; //Amount of damage.
public int DamageOverTime; //Damage over time.
public float DamageInterval_DOT = .25f; //Damage interval for damage over time.
public string Level;
PlayerHealth player;
void Start()
{
player = GameObject.Find("Player").GetComponent<PlayerHealth>();
InvokeRepeating("OnTriggerEnter", DamageInterval_DOT, DamageInterval_DOT);
}
void Update()
{
PHP = GameObject.Find("Player").GetComponent<PlayerHealth>().PlayerHP;
if (PHP <= 0)
{
SceneManager.LoadScene(Level);
}
}
void OnTriggerEnter(Collider coll)
{
if (coll.gameObject.tag == "Player")
{
GameObject.Find("Player").GetComponent<PlayerHealth>().PlayerHP = PHP - Damage;
}
if (coll.gameObject.tag == "Ball")
{
gameObject.SetActive(false);
SceneManager.LoadScene(Level);
}
}
}
我的目标是让 OnTriggerEnter 函数循环 1/4 秒(或更低)。进入对撞机后,我的生命值在大约一秒钟内消耗了 60%,这太快了。我应该如何解决这个问题?
【问题讨论】: