解释代码public class Control : MonoBehaviour { ////public Slider hpSilder; public Text danageText; public float hp = 100f; public NavMeshAgent agent; public Transform targetTf; public bool isEnterFire = false; public float curDamageBase; public float EnterTimer = 0; private MySqlConnection con; private MySqlCommand cmd; private string serverName = "localhost"; private string dbName = "UnityGame"; private string userName = "root"; private string password = "12345678"; private string port = "3306"; void Start() { agent.SetDestination(targetTf.transform.position); string constr = "Server=" + serverName + ";Database=" + dbName + ";Uid=" + userName + ";Pwd=" + password + ";Port=" + port + ";"; con = new MySqlConnection(constr); con.Open(); cmd = con.CreateCommand(); } void Update() { if (isEnterFire) { EnterTimer += Time.deltaTime; } } public void OnTriggerEnter(Collider other) { if (other.tag == "Fire") { string fireNum = other.name; curDamageBase = GetDamageBase(fireNum); //Debug.Log(fireNum + "--" + curDamageBase); //curDamageBase = float.Parse(other.name); isEnterFire = true; StartCoroutine(IEnDamage()); } } public IEnumerator IEnDamage() { while (isEnterFire) { yield return new WaitForSeconds(1f); hp -= EnterTimer * curDamageBase; danageText.gameObject.SetActive(true); danageText.text = "-" + (EnterTimer * curDamageBase).ToString("f2"); } danageText.gameObject.SetActive(false); yield break; } public void OnTriggerStay(Collider other) { } public void OnTriggerExit(Collider other) { if (other.tag == "Fire") { isEnterFire = false; } } private float GetDamageBase(string fireNum) { float damageBase = 0; string sql = "SELECT DamageBase FROM hit WHERE fireNum='" + fireNum + "'"; cmd.CommandText = sql; MySqlDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { damageBase = float.Parse(reader["DamageBase"].ToString()); } reader.Close(); return damageBase; } private void OnDestroy() { con.Close(); } }
时间: 2024-01-18 08:02:12 浏览: 149
unity开发window系统安装使用说明以及代码示例.txt
这是一个控制游戏角色的脚本,其中包括了以下功能:
1. 控制角色移动:使用 NavMeshAgent 组件实现,将角色移动到目标点。
2. 触发火焰伤害:当角色进入火焰触发器范围内时,将触发 OnTriggerEnter 方法。该方法会检测触发器的标签是否为 “Fire”,如果是,则获取该触发器的名字 fireNum,并调用 GetDamageBase 方法从数据库中查询该火焰的伤害基础值。然后启动协程 IEnDamage,每秒计算一次伤害值并更新角色的 hp 值和 danageText 显示。
3. 离开火焰范围:当角色离开火焰触发器范围时,将触发 OnTriggerExit 方法,将 isEnterFire 标志设为 false。
4. 访问 MySQL 数据库:在 Start 方法中连接 MySQL 数据库,获取 MySqlCommand 对象,用于执行 SQL 语句查询火焰伤害基础值。在 GetDamageBase 方法中,使用 MySqlCommand 对象执行 SELECT 语句查询指定触发器的伤害基础值。
5. 关闭数据库连接:在 OnDestroy 方法中关闭 MySQL 数据库连接。
阅读全文