// Use this for initialization void Start() { fsm.ChangeState(States.Normal); //Movement Variables walkSpeed = WalkSpeed; //HB Bar UI MyGUI = GameObject.Find("Canvas"); SetHPBar(); //Visibility Zone EnemyVisibility = VisibilityZone.GetComponentInChildren <EnemyVisibility>(); InVisibilityZone = EnemyVisibility.InVisibilityZone; //Detection Zone EnemyDetection = DetectionZone.GetComponentInChildren <EnemyDetection>(); InDetectionZone = EnemyDetection.InDetectionZone; //Player find to follow Player = GameManager.instance.player.transform; if (BehaivourType == Behaivour.Flying) { GetComponent <AIDestinationSetter>().target = Player; } }
void Start() { agent = GetComponent <NavMeshAgent>(); EnemyPatrol = new EnemyPatrol(agent, patrolPoints); PlayerCombat = new Combat( transform: transform, adversaryLayers: playerLayers, attackRadius: attackRange); Visibility = new EnemyVisibility( transform: transform, target: target, maxAngle: visibilityAngle, maxDistance: visibilityDistance, ignoreLayers: visibilityIgnoreLayers); Hearing = new EnemyHearing( transform: transform, target: target, maxDistance: hearingDistance ); state = State.None; }
void Start() { isMove = true; sprite = gameObject.transform.GetChild(0).gameObject; enemVis = GetComponent <EnemyVisibility>(); enemyManager = GetComponent <EnemyManager>(); wallCheck = gameObject.AddComponent <RayChecker>(); }
public void Initialize(int newID, Vector2Int newPosition) { id = newID; position = newPosition; visibility = GetComponent <EnemyVisibility>(); visibility.Initialize(); }
/// <summary> /// Initialization /// </summary> /// <param name="_enemyVisibility">controller of character's visibility</param> public void Initialize(EnemyVisibility _enemyVisibility) { Visibility = _enemyVisibility; if (m_MeshRenderer == null || m_Material == null) { Debug.LogError("Some required components = NULL"); return; } transform.localPosition += OriginOffset; isInitialized = true; }
new void Update() { base.Update(); // Update all collisions here wasOnGround = onGround; onGround = OnGround(); EnemyVisibility = VisibilityZone.GetComponentInChildren <EnemyVisibility>(); InVisibilityZone = EnemyVisibility.InVisibilityZone; if (turnCooldownTimer > 0f) { turnCooldownTimer -= Time.deltaTime; } }
protected override void Update() { EnemyVisibility = VisibilityZone.GetComponentInChildren <EnemyVisibility>(); InVisibilityZone = EnemyVisibility.InVisibilityZone; PlayerPos = EnemyVisibility.PlayerPos; if (dazedTime <= 0) { speed = 1; } else { speed = 0; dazedTime -= Time.deltaTime; } Move(); Assault(); if (dieCooldown > 0) { dieCooldown -= Time.deltaTime; } }
new void Update() { base.Update(); // Update all collisions here wasOnGround = onGround; onGround = OnGround(); //Debug.Log(BehaivourType.ToString()); //if (BehaivourType == Behaivour.Flying) //{ // float dist = Vector3.Distance(transform.position, Player.transform.position); // if (dist < distanceDetecting) // { // Debug.Log("враг заметил"); // //TODO враг в зоне и движется // } //} EnemyVisibility = VisibilityZone.GetComponentInChildren <EnemyVisibility>(); InVisibilityZone = EnemyVisibility.InVisibilityZone; EnemyDetection = DetectionZone.GetComponentInChildren <EnemyDetection>(); InDetectionZone = EnemyDetection.InDetectionZone; //Bow Attack timer if (bowAttackCooldownTimer > 0f) { bowAttackCooldownTimer -= Time.deltaTime; } //Bow Attack timer if (castAttackCooldownTimer > 0f) { castAttackCooldownTimer -= Time.deltaTime; } //Melee Attack timer if (meleeAttackCooldownTimer > 0f) { meleeAttackCooldownTimer -= Time.deltaTime; } if (firstSpecialAttackCooldownTimer > 0f) { firstSpecialAttackCooldownTimer -= Time.deltaTime; } if (secondSpecialAttackCooldownTimer > 0f) { secondSpecialAttackCooldownTimer -= Time.deltaTime; } if (thirdSpecialAttackCooldownTimer > 0f) { thirdSpecialAttackCooldownTimer -= Time.deltaTime; } if (blinkCooldownTimer > 0f) { blinkCooldownTimer -= Time.deltaTime; } if (expectationCooldownTimer > 0f) { expectationCooldownTimer -= Time.deltaTime; } if (turnCooldownTimer > 0f) { turnCooldownTimer -= Time.deltaTime; } //if (stunedCooldownTimer > 0f) //{ // stunedCooldownTimer -= Time.deltaTime; //} if (ShowHP != null) { // получаем экранные координаты расположения врага Vector3 screenPos = metka.transform.position; // задаем координаты расположения хп ShowHP.transform.position = screenPos; } }
private void UpdateState(RaycastHit hit, bool pressed) { //Attack (nyx selected and mouse over enemy) if (hit.transform.tag == Tags.enemy && players_manager.IsNyxSelected()) { EnemyVisibility enemy = hit.transform.GetComponent <EnemyVisibility>(); if (enemy != null) { if (enemy.IsVisible()) { Cursor.SetCursor(attack, hot_spot, CursorMode.Auto); return; } } else { Debug.Log("Enemy: " + hit.transform.name + " doesn't have script EnemyVisibility attached. Cursor State CAN'T update"); } } int layer = hit.transform.gameObject.layer; //Interact if (layer == LayerMask.NameToLayer(Layers.selectable_object)) { if (pressed) { Cursor.SetCursor(interact_p, hot_spot, CursorMode.Auto); } else { Cursor.SetCursor(interact_i, hot_spot, CursorMode.Auto); } return; } //Interact (special cases) //Barion with corpses if (layer == LayerMask.NameToLayer(Layers.corpse)) { if (players_manager.IsBarionSelected()) { if (pressed) { Cursor.SetCursor(interact_p, hot_spot, CursorMode.Auto); } else { Cursor.SetCursor(interact_i, hot_spot, CursorMode.Auto); } return; } } //Allies if (hit.transform.tag == Tags.player) { if (pressed) { Cursor.SetCursor(ally_p, hot_spot, CursorMode.Auto); } else { Cursor.SetCursor(ally_i, hot_spot, CursorMode.Auto); } return; } //Default if (pressed) { Cursor.SetCursor(idle_p, hot_spot, CursorMode.Auto); } else { Cursor.SetCursor(idle_i, hot_spot, CursorMode.Auto); } }