//int m; void Start() { player = FindObjectOfType <Haze>(); ActiveStatus = Status.Ronda; //Status iniziale del nemico. Comincia sempre in ronda Debug.Log(gameObject.layer); }
public void RemoveHaze(Haze haze) { haze.gameObject.SetActive(false); haze.Reset(); hazeBucketEmptyFlags [activeHazeMap [haze]] = true; activeHazeMap.Remove(haze); freeHazeList.Push(haze); }
// Update is called once per frame void Update() { if (gameOverText.activeSelf && (Input.GetMouseButtonDown(0) || Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)) { GameRestart(); } if (!gameOverText.activeSelf) { deltaTimeAccumulated += Time.deltaTime; if (deltaTimeAccumulated >= hazeCreateInterval) { int emptyHazeBucketCount = 0; for (int i = 0; i < hazeBucketEmptyFlags.Length; ++i) { if (hazeBucketEmptyFlags [i]) { emptyHazeBuckets [emptyHazeBucketCount++] = i; } } if (emptyHazeBucketCount > 0) { int hazeBucket = emptyHazeBuckets[Random.Range(0, emptyHazeBucketCount)]; hazeBucketEmptyFlags [hazeBucket] = false; int row = hazeBucket / hazeBucketColumns; int col = hazeBucket % hazeBucketColumns; Vector2 minScreenPos, maxScreenPos; minScreenPos.x = col * (Camera.main.pixelWidth / hazeBucketColumns); minScreenPos.y = row * (Camera.main.pixelHeight / hazeBucketRows); maxScreenPos.x = minScreenPos.x + Camera.main.pixelWidth / hazeBucketColumns; maxScreenPos.y = minScreenPos.y + Camera.main.pixelHeight / hazeBucketRows; Haze haze = freeHazeList.Count > 0 ? freeHazeList.Pop() : Object.Instantiate(hazePrototype.gameObject).GetComponent <Haze> (); haze.enabled = true; float screenX = Random.Range(minScreenPos.x, maxScreenPos.x); float screenY = Random.Range(minScreenPos.y, maxScreenPos.y); Vector3 position = Camera.main.ScreenToWorldPoint(new Vector2(screenX, screenY)); position.z = haze.transform.position.z; haze.transform.position = position; haze.gameObject.SetActive(true); activeHazeMap.Add(haze, hazeBucket); deltaTimeAccumulated = 0; } } } }
//Controlla la direzione in cui è il player e decide con quale forza lanciare il feromone private void Start() { rb2d = GetComponent <Rigidbody2D>(); player = GameObject.FindGameObjectWithTag("Player").GetComponent <Haze>(); if (player.direct == Haze.Direction.Right) { rb2d.AddForce(Vector2.right * speed); } else if (player.direct == Haze.Direction.Left) { rb2d.AddForce(Vector2.left * speed); } }
//Controlla la direzione in cui è il player e decide con quale forza lanciare il feromone private void Start() { rb2d = GetComponent <Rigidbody2D>(); bottleAnimation = GetComponent <Animator>(); player = GameObject.FindGameObjectWithTag("Player").GetComponent <Haze>(); SoundManagerScript.PlaySound("FeromoniLancio"); if (player.direct == Haze.Direction.Right) { rb2d.AddForce(Vector2.right * speed); } else if (player.direct == Haze.Direction.Left) { rb2d.AddForce(Vector2.left * speed); } }
public void SpawnHaze() { GameObject haze = Instantiate(hazePrefab, transform.position + hazePrefab.transform.position, Quaternion.identity); Haze hazeScript = haze.GetComponent <Haze>(); RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down, feetCollider.size.y / 2 * checkStairsRayLength, layerMask: groundLayer); if (hit) { if (hit.normal != Vector2.up) { if (hit.normal.x < 0) { hazeScript.RotateHaze(); // если идёт вверх вправо } hazeScript.SetHazeOnStairs(); } } hazeScript.StartAnimation(); }