Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using UnityEngine.Networking;
- public class HealthAndDamage : NetworkBehaviour {
- [SyncVar(hook = "OnHealthChanged")]
- public int health;
- public override void OnStartLocalPlayer ()
- {
- CmdSetHealth(100);
- }
- [Command]
- void CmdSetHealth(int newHealth)
- {
- health = newHealth;
- }
- [Server]
- public void TakeDamage(GameObject fromPlayer)
- {
- health = Mathf.Max(health - 10, 0);
- }
- void OnHealthChanged(int newHealth)
- {
- health = newHealth;
- if(health < 100)
- {
- StartCoroutine(ShowHitEffect());
- }
- }
- IEnumerator ShowHitEffect()
- {
- var material = GetComponent<Renderer>().material;
- Color savedColor = material.color;
- material.color = Color.yellow;
- yield return new WaitForSeconds(0.4f);
- material.color = savedColor;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement