You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

86 lines
2.0 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public bool isLocked = false;
public float power;
public float radius;
public float time;
public GameObject waveRing;
public int life = 3;
public float lastDamageTime = 0;
public static PlayerController instance;
public GameObject[] lifeHearts;
void Start() {
NotificationServer.register("show GameUI", showGameUI);
NotificationServer.register("hide GameUI", hideGameUI);
instance = this;
}
// Update is called once per frame
void Update () {
if (Input.GetButtonDown("Fire1") && !isLocked) {
Debug.Log("Click");
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
LayerMask rayMask = (1 << 4);
Debug.DrawRay(ray.origin, ray.direction * 100, Color.green);
if (Physics.Raycast(ray, out hit, Mathf.Infinity,rayMask)) {
WaterController waterScript = hit.collider.gameObject.GetComponent<WaterController>();
Debug.DrawLine(Camera.main.transform.position, hit.point, Color.red,1);
Debug.Log("I hit: " + hit.transform.name);
if (waterScript != null)
waterScript.CreateWave(hit.point, radius, power);
}
}
}
public void setLife(int life) {
for (int i = 0; i < lifeHearts.Length; i++) {
lifeHearts[i].SetActive((i < life));
}
this.life = life;
}
public void takeOneDamage() {
if (Time.time > lastDamageTime + 2 && life > 0) {
setLife(life - 1);
lastDamageTime = Time.time;
if (life == 0)
NotificationServer.notify("show GameOverPanel");
}
}
private void showGameUI() {
Debug.Log("UI open");
isLocked = false;
}
private void hideGameUI() {
Debug.Log("UI close");
isLocked = true;
}
}