using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Threading;
public class cannon : MonoBehaviour {
Transform target; // цель
public Transform sp;//spawn point (спавн пулей)
public Transform bullet;//пуля
public float attackRange = 30.0f;
public float shootAngleDistance = 10.0f;
public float gundamag = 30;
int speed=5;
int tim = 0;
LayerMask LMSK=4;
float _time = 5.0f;
double t = 0.3f;//число для счетчика выстрелов
float delta;
float objectdefault_y_position = 21.55736f;
void FindClosestEnemy()
{
//gos = Physics.OverlapSphere(transform.position,20);
//foreach(var enemy in gos){
//if(enemy.gameObject.tag=="Player")
//target=enemy.gameObject.transform;
//}
}
void Awake(){
}
void Start(){
}
void FixedUpdate(){
//print (target);
/* GameObject closest=null;
float distance = 500f;
foreach(var enemy in Enemy_test_Scrpt.AllEnemies){
var diff=(enemy.transform.position-transform.position);
var curDistance=diff.sqrMagnitude;
if(curDistance<distance)
{
closest=enemy;
distance=curDistance;
}
}
target=closest.transform; */
}
void OnTriggerEnter(Collider other) {
if(other.gameObject.tag=="Player")
target=other.gameObject.transform;
}
void OnTriggerExit(Collider other){
if(other.gameObject.transform==target)
target=null;
}
void Update(){
//FindClosestEnemy();
//Пушка ищет ближайшую цель
if (target == null) //если не нашла то ретурн
return;
transform.LookAt(target);
//var targetRotation = Quaternion.LookRotation(target.transform.position - transform.position);
// Smoothly rotate towards the target point.
//transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime);
//повороачиваем пушку к цели
/* var targetPoint = target.position;
var targetRotation = Quaternion.LookRotation (targetPoint - transform.position, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 4.0f);
var forward = transform.TransformDirection(Vector3.forward);
var targetDir = target.position - transform.position;
////повороачиваем пушку к цели*/
RaycastHit hit;
if(Physics.Raycast(transform.position,transform.forward,out hit,200f)){//стрельба
//Debug.DrawLine( transform.position, target.position, Color.red);
Pause ();//пауза
if(t>=0.5){//ждем пока счетчик обнулится
if(hit.transform.gameObject.layer!=4){
hit.transform.gameObject.GetComponent<Enemy_test_Scrpt>().target_health-=gundamag;
}
t=0.3;//счетчик выстрела обнуляем
}
}//DrawScript
}
void Pause(){//пауза
if(t<0.5){
t+=Time.deltaTime*(1.0/_time);
}
}
}