Bullet.js
#pragma strict
var direction: Vector2;
var target: Transform; //the enemy's target
function Start(){
target = GameObject.FindWithTag("Wizard").transform;
direction = target.position - GetComponent(Transform).position;
}
// Update is called once per frame
function Update () {
GetComponent(Rigidbody2D).velocity = direction;
}
public function OnTriggerEnter2D (other : Collider2D)
{
Debug.Log("Triggered");
Debug.Log(other);
if (other.name == "Wizard")
{
Debug.Log("Hit Wizard");
var levelManager: LevelManager = GetComponent(LevelManager);
levelManager.damagePlayer();
}
}
EnemyAI.js
#pragma strict
private var isFollowing = true;
var prefabToSpawn : GameObject;
private var spawnLocation : Vector3;
var target : Transform; //the enemy’s target
var moveSpeed = 3; //move speed
var myTransform : Transform; //current transform data of this enemy
private var moveDirection : Vector3 = Vector3.zero;
var distance : float;
//private var attacked = false;
var allowFire = true;
var wait : float;
function Awake()
{
myTransform = transform; //cache transform data for easy access/preformance
}
function Start()
{
target = GameObject.FindWithTag(“Wizard”).transform; //target the player
spawnLocation = myTransform.position; //spawn at enemy location
InvokeRepeating(“attacking”,0.0,1.0/wait);
}
function Update ()
{
isFollowing = (target.position - myTransform.position).magnitude > distance;
if(isFollowing)
{
following();
allowFire = false;
}
else
{
spawnLocation = myTransform.position; //spawn at enemy location
if(!isFollowing)
{
//attacking();
allowFire = true;
}
}
}
function following()
{
moveDirection = target.position - myTransform.position;
Debug.Log(myTransform.forward);
//move towards the player
myTransform.position += moveDirection * moveSpeed * Time.deltaTime;
}
function attacking()
{
if(allowFire)
{
Instantiate(prefabToSpawn, spawnLocation, Quaternion.identity);
allowFire = false;
}
//Debug.Log(wait.ToString());
//yield WaitForSeconds(wait);
}
PlayerController.js
#pragma strict
//Global Vars
var speed: float = 20.0;
private var moveDirection : Vector2 = Vector2.zero;
function Start () {
}
function Update () {
Time.timeScale = 1.0;
var move = Vector3(Input.GetAxis(“Horizontal”), Input.GetAxis(“Vertical”), 0);
transform.position += move * speed * Time.deltaTime;
}
LevelManager.js
#pragma strict
public var position: Vector3;
public var damage: int = 5;
public var health: int = 100;
public var lives: int = 3;
public var score: int = 0;
public var time: int = 0;
public var rend: Renderer;
private var player: PlayerController ;
function Start () {
player = FindObjectOfType(PlayerController);
rend = GetComponent.();
rend.enabled = true;
}
function Update () {
}
public function damagePlayer()
{
if(health > damage)
{
health -= damage;
Debug.Log(health);
}else
{
health = 0;
if (lives > 1)
{
lives --;
Debug.Log(lives);
player.enabled = false;
rend.enabled = false;
Debug.Log (“Player Respawn”);
yield WaitForSeconds (5);
transform.position = Vector3(0, 0, 0);
rend.enabled = true;
player.enabled = true;
}else
{
lives = 0;
player.enabled = true;
rend.enabled = false;
Debug.Log (“Game Over”);
}
}
}