// Use this for initialization void Start() { distance = Vector3.Distance (preceding.transform.position, transform.position); rbz = GetComponent<Rigidbody> (); rbzpreceding = preceding.GetComponent<SphereCollider> (); zombieBehaviour = new FirstBehaviour (); }
// Update is called once per frame void Update() { RaycastHit hit; if (Time.time > shootDelay + lastShoot) { if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hit, range)) { Debug.Log(hit.transform.name); ZombieBehaviour zombie = hit.transform.GetComponent <ZombieBehaviour>(); if (zombie != null) { zombie.TakeDamage(damage); } if (hit.rigidbody != null) { hit.rigidbody.AddForce(hit.normal * impactForce); } GameObject impactGO = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal)); Destroy(impactGO, 2f); } lastShoot = Time.time; SoundManagerScript.Instance.PlaySFX(SoundManagerScript.AudioClipID.SFX_SHOOT); } }
// Update is called once per frame void Update() { counter++; livesDisplay.text = "Lives: " + lives; scoreDisplay.text = "Score: " + score; ammoDisplay.text = "Ammo: " + ammo; Vector3 move = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0.0f); transform.position += move * speed * Time.deltaTime; monster = GameObject.FindGameObjectWithTag("Monster"); if (counter < 200) { instructions.text = "Press space to shoot"; } else { instructions.text = ""; } try { zomBehave = monster.GetComponent <ZombieBehaviour> (); } catch (Exception e) { if (counter > 5000 && lives > 0) { win(); if (Input.GetKeyDown(KeyCode.R)) { restart(); } } } if (Input.GetAxis("Horizontal") > 0) { monsterKiller.flipX = false; } else if (Input.GetAxis("Horizontal") < 0) { monsterKiller.flipX = true; } if (Input.GetKeyDown("space")) { if (ammo > 0) { ammo--; Rigidbody2D ammoClone = (Rigidbody2D)Instantiate(bullet, gameObject.GetComponent <Rigidbody2D> ().transform.position, transform.rotation); } else if (ammo <= 0) { noAmmo.Play(); } } if (lives <= 0) { gameOver(); die.Play(); if (Input.GetKeyDown(KeyCode.R)) { restart(); } } }
void Start() { FernandoClue.SetActive(false); ITKey.SetActive(false); ITDoor.GetComponent <Collider>().enabled = false; ZombieBehaviour zombie = (ZombieBehaviour)GameObject.FindObjectOfType(typeof(ZombieBehaviour)); m_Zombie = zombie.gameObject; }
public void MoveZombie() { ZombieBehaviour zombie = m_Zombie.GetComponent <ZombieBehaviour>(); if (zombie != null) { zombie.MoveForwardAndDisable(6); } }
public void deactivateZombie() { Debug.Log("Zombie deactivated"); Debug.Log(gameObject); //Destroy(gameObject); ZombieBehaviour zombieBehaviour = GetComponent <ZombieBehaviour>(); zombieBehaviour.transmitter.GetComponent <Renderer>().material.color = Color.gray; zombieBehaviour.enabled = false; GameControlBehaviour.instance.points -= 10; StartCoroutine("deacZombie"); }
public void Spawn(Vector3 transmitterSpawnPos, Vector3 zombieSpawnPos) { if (zombiesInAction < maxNumberOfTransmitters) { // Find the Objects, that helps with handling the Zombies and Transmitters in Hierarchy GameObject transmitters = GameObject.Find("Transmitters"); GameObject zombies = GameObject.Find("Zombies"); GameObject transmitterObj = Instantiate( transmitterPrefab, transmitterSpawnPos, Quaternion.identity, transmitters.transform) as GameObject; GameObject zombieObj = Instantiate( zombiePrefab, zombieSpawnPos, Quaternion.identity, zombies.transform) as GameObject; ZombieBehaviour zombieBehaviour = zombieObj.GetComponent <ZombieBehaviour>(); zombieBehaviour.goalPOI = (POI)Random.Range(0, 3); zombieBehaviour.transmitter = transmitterObj; Color color = new Color(Random.value, Random.value, Random.value, Random.value); zombieObj.GetComponent <ZombieBehaviour>().goalPOI = (POI)Random.Range(0, 3); zombieObj.GetComponent <Health>().healthSlider = transmitterObj.GetComponentInChildren <Slider>(); transmitterObj.GetComponentInChildren <Image>().sprite = pointsOfInterestImage[(int)zombieBehaviour.goalPOI]; if (zombieObj.transform.GetChild(0).GetComponent <Renderer>() != null) { zombieObj.transform.GetChild(0).GetComponent <Renderer>().material.color = color; } transmitterObj.GetComponent <Renderer>().material.color = color; zombiesInAction += 1; transmitterObj.transform.rotation = Quaternion.LookRotation(Vector3.up, transform.position); if (transmitterObj.transform.position.z > constants.PARK_HEIGHT) { transmitterObj.transform.Rotate(transmitterObj.transform.up, 90); } Destroy(transmitterObj.GetComponent <Material>()); transmitterObj.GetComponent <CmdTransmitBehaviour> ().receiver = zombieObj; } }
// catching and destroying zombies / adding score / removing lives void OnTriggerEnter(Collider col) { ZombieBehaviour zbT = col.GetComponent <ZombieBehaviour>(); if (zbT != null) { if (zbT.GetType() == typeof(FriendlyZombie)) { GameController.AddScore(1); // adding score is zombie was friendly } else { GameController.SpendLives(1); // removing 1 llife if zombie was hostile } zbT.Kill(); // killing zombie } }
// Use this for initialization void Start() { counter = 1; frameDelta = 200; bossSpawn = 1000; posX = gameObject.transform.position.x + 16f; mechBehave = mech.GetComponent <ZombieBehaviour> (); mechBehave.hit = hit; mechBehave.reachedEnd = reachedEnd; mechBehave.dead = mechDead; tankBehave = tank.GetComponent <ZombieBehaviour> (); tankBehave.hit = hit; tankBehave.reachedEnd = reachedEnd; tankBehave.dead = tankDead; }
private void Attack() { int currentLoopNumber; if (!animator.GetCurrentAnimatorStateInfo(0).IsName("AttackMaya")) { return; } currentLoopNumber = (int)animator.GetCurrentAnimatorStateInfo(0).normalizedTime; if (currentLoopNumber > lastLoopNumber) { lastLoopNumber = currentLoopNumber; if (target.TakeDamage()) { target = null; } isAttacking = false; } }
private void Spawn(GameObject prefab, int number) { for (int i = 0; i < number; i++) { Vector3 spawnPosition = new Vector3(transform.position.x + UnityEngine.Random.Range(-0.5f, 0.5f), prefab.transform.position.y + transform.position.y); GameObject newMob = GameObject.Instantiate(prefab, spawnPosition, prefab.transform.rotation, monstersParent); newMob.transform.localScale = new Vector3(UnityEngine.Random.Range(0.8f, 1.2f), UnityEngine.Random.Range(0.8f, 1.2f)); Monster monster = newMob.GetComponent <Monster>(); monster.speed *= UnityEngine.Random.Range(0.9f, 1.1f); // Scaling stats with time float scaling = 1f + Mathf.Sqrt(currentTimer); monster.speed *= Mathf.Sqrt(scaling); monster.maxHP *= scaling; if (currentTimer > 15f) { monster.maxHP += 50f * scaling; } if (currentTimer > 30f) { monster.maxHP += 50f * scaling; monster.maxHP *= scaling; } if (currentTimer > 45f) { monster.maxHP += 500f * scaling; } ZombieBehaviour zombie = newMob.GetComponent <ZombieBehaviour>(); zombie.monsterInfo = monster; if (zombie.hasSpriteVariation) { int rand = UnityEngine.Random.Range(0, zombie.sprites.Length); zombie.spriteRenderer.sprite = zombie.sprites[rand]; zombie.animator.runtimeAnimatorController = zombie.animatorControllers[rand]; } monstersList.Add(newMob); } }
public void OnTriggerEnter(Collider otherCollider) { GameObject hitObject = otherCollider.gameObject; if (behaviour != null) { if (behaviour.GetIsDamaging() == true) { if (hitObject.GetComponent <PlayerInputHandler>() != null) { HealthSystem playerHealth = hitObject.GetComponent <HealthSystem>(); playerHealth.DoDamage(behaviour.attackDamage); } } } else { behaviour = GetComponentInParent <ZombieBehaviour>(); } }
void Shoot() { RaycastHit hit; if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range)) { GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); sphere.transform.localScale = new Vector3(0.25f, 0.25f, 0.25f); sphere.transform.position = hit.point; GameObject.Destroy(sphere.GetComponent <SphereCollider>()); Debug.Log(hit.transform.name); if (hit.transform.tag == "Zombie") { ZombieBehaviour Behaviour = hit.transform.gameObject.GetComponent <ZombieBehaviour>(); Debug.Log("Hit a zombie"); Behaviour.TakeDamage(damage); } } }
/// <summary> /// Update is called every frame, if the MonoBehaviour is enabled. /// </summary> private void Update() { Camera.main.transform.position = Vector3.Lerp(Camera.main.transform.position, transform.position + cameraOffset, Time.deltaTime); if (target) { agent.destination = target.transform.position; if (agent.remainingDistance <= 1.5 && isAttacking) { animator.SetBool("Is Running", false); animator.SetBool("Is Attacking", true); agent.isStopped = true; transform.LookAt(target.transform); Attack(); } else { animator.SetBool("Is Running", true); } } else { animator.SetBool("Is Running", !agent.isStopped && agent.remainingDistance > 1); } ProcessInputs(); if (!isAttacking) { target = null; animator.SetBool("Is Attacking", false); } if (!target) { lastLoopNumber = -1; } }
private void Start() { //todo: fix this as it is a temporary solution var previewBehaviour = Instantiate(zombieTemplate, new Vector3(0f, -150f, 0f), Quaternion.identity).GetComponent <ZombieBehaviour>(); previewBehaviour.attack = MapData.ZombieToSpawn.totalAttack; previewBehaviour.health = MapData.ZombieToSpawn.totalHealth; previewBehaviour.speed = MapData.ZombieToSpawn.totalSpeed; previewBehaviour.spawnCost = MapData.ZombieToSpawn.totalCost; var partsRotation = previewBehaviour.torsoPosition.rotation; Instantiate(MapData.ZombieToSpawn.head.partObject, previewBehaviour.headPosition.position, partsRotation, previewBehaviour.headPosition); Instantiate(MapData.ZombieToSpawn.torso.partObject, previewBehaviour.torsoPosition.position, partsRotation, previewBehaviour.torsoPosition); Instantiate(MapData.ZombieToSpawn.arms[0].partObject, previewBehaviour.armLPosition.position, partsRotation, previewBehaviour.armLPosition); Instantiate(MapData.ZombieToSpawn.arms[1].partObject, previewBehaviour.armRPosition.position, partsRotation, previewBehaviour.armRPosition); Instantiate(MapData.ZombieToSpawn.legs[0].partObject, previewBehaviour.legLPosition.position, partsRotation, previewBehaviour.legLPosition); Instantiate(MapData.ZombieToSpawn.legs[1].partObject, previewBehaviour.legRPosition.position, partsRotation, previewBehaviour.legRPosition); _zombieToSpawn = Instantiate(previewBehaviour); _zombieToSpawn.gameObject.SetActive(false); previewBehaviour.gameObject.Destroy(); }
private void ProcessInputs() { if (Input.GetButtonDown("Fire1")) { RaycastHit hit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 50, LayerMask.GetMask("Zombie", "Terrain"))) { if (hit.collider.tag == "Ennemi") { target = hit.collider.GetComponentInParent <ZombieBehaviour>(); } else { target = null; } agent.isStopped = false; agent.destination = hit.point; } } if (Input.GetButton("Fire1") && target) { isAttacking = true; } }
void Awake() { RigidbodyCache = Hips.GetComponentsInChildren <Rigidbody>(); ColliderCache = Hips.GetComponentsInChildren <Collider>(); ai = GetComponent <ZombieBehaviour>(); }
// Start is called before the first frame update void Start() { behaviour = GetComponentInParent <ZombieBehaviour>(); }
// Start is called before the first frame update void OnEnable() { theZombie = transform.parent.gameObject; theZombieBehaviour = theZombie.GetComponent <ZombieBehaviour>(); }
ZombieBehaviour behaviour; //The zombie's behaviour, used to know what it is currently doing // Start is called before the first frame update void Start() { anim = GetComponent <Animator>(); behaviour = GetComponent <ZombieBehaviour>(); }