// Update is called once per frame void Update() { FlatMovement(); FixObject(); if (fixableObject != null) { fixingHandler = fixableObject.GetComponent <FixingHandler>(); } }
private void OnTriggerEnter(Collider other) { if (other.GetComponent <FixingHandler>() != null && crntState != enemyState.Attacking) { FixingHandler handler = other.GetComponent <FixingHandler>(); if (handler.crntEnemyCount < handler.maxAllowedEnemies) { crntState = enemyState.Attacking; agent.destination = handler.transform.position + new Vector3(Random.Range(-5, 5), 0, Random.Range(-5, 5)); handler.crntEnemyCount++; handler.attackingUnits.Add(this); } } }
void FixObject() { if (Input.GetKey(KeyCode.Space) && fixableObject != null && Vector3.Distance(transform.position, fixableObject.transform.position) < distanceFromFixer) { animator.SetBool("isAttacking", true); if (fixingHandler == null) { fixingHandler = fixableObject.GetComponent <FixingHandler>(); } fixingHandler.life++; if (!audioSource.isPlaying) { audioSource.clip = clips[1]; audioSource.Play(); } } if (Input.GetKeyUp(KeyCode.Space)) { audioSource.Stop(); animator.SetBool("isAttacking", false); } }
// Start is called before the first frame update void Start() { fixingHandler = GetComponent <FixingHandler>(); }