Unity多人游戏简单实例(一)同步变量

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;

public class Health : NetworkBehaviour
{
	public const int maxHealth = 100;

	//需要同步的变化
	[SyncVar(hook ="OnChangeHealth")]
	public int currentHealth = maxHealth;

	//血条
	public RectTransform healthbar;

	public void TakeDamage(int amount)
	{
		//为了保持变量一致,作为服务端时才处理
		if (!isServer)
			return;

		currentHealth -= amount;
		if(currentHealth <=0)
		{
			currentHealth = 0;
			Debug.Log("Dead");
		}		
	}

	//变量改变是客户端处理
	void OnChangeHealth(int health)
	{
		//修改血条
		healthbar.sizeDelta = new Vector2(health * 2, healthbar.sizeDelta.y);
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章