public void Spawn() { float y = Random.Range(minY, maxY); float x = Random.Range(minX, maxX); if (spawnOutOfCamera) { Vector2 whereToSpawn = m_camera.WorldToScreenPoint(new Vector2(x, y)); if (!m_camera.pixelRect.Contains(whereToSpawn) && !GetComponent <Collider>().isTrigger) { ObjectPool.Instantiate(toSpawn, new Vector2(x, y), toSpawn.transform.rotation, transform); } } else { GameObject go = ObjectPool.Instantiate(toSpawn, new Vector2(x, y), toSpawn.transform.rotation, transform); //Specific lines to make CircularMovement works correctly CircularMovement cm = go.GetComponent <CircularMovement>(); if (cm != null) { cm.SetPivot(new Vector2(x, y)); //Debug.Log("OX: " + x + " OY: " + y + " X: " + cm.Pivot.x + " Y: " + cm.Pivot.y); } } enemiesSpawned++; }
public void RandomDogsPosition() { var newPositions = new Vector3[currentDogsByScenes[0].Dogs.Count]; for (int i = 0; i < newPositions.Length; i++) { newPositions[i] = GetNewDogRandomPosition(); } foreach (var dogsByScene in currentDogsByScenes) { var dogIndex = 0; foreach (var dog in dogsByScene.Dogs) { var positionAssigned = false; var counter = 0; while (!positionAssigned && counter < RETRIES) { var dogInitialPos = newPositions[dogIndex]; dog.transform.position = dogInitialPos; Physics.autoSyncTransforms = true; Physics.SyncTransforms(); if (PositionIsSafe(dog, objectAssigned)) { objectAssigned.Add(dog); positionAssigned = true; } else { newPositions[dogIndex] = GetNewDogRandomPosition(); } counter++; } LinearMovement linear = dog.GetComponent <LinearMovement>(); if (linear != null) { linear.SetNewStartPosition(dog.transform.position); } CircularMovement circularMovement = dog.GetComponent <CircularMovement>(); if (circularMovement != null) { circularMovement.Reset(); } dogIndex++; } } }
void Kill() { SineMovement sm = GetComponent <SineMovement>(); if (sm != null) { sm.enabled = false; } StraightMovement strm = GetComponent <StraightMovement>(); if (strm != null) { strm.enabled = false; } FollowObject fo = GetComponent <FollowObject>(); if (fo != null) { fo.enabled = false; } CircularMovement cm = GetComponent <CircularMovement>(); if (cm != null) { cm.enabled = false; } //Disable the renderer and the Collider GetComponent <SpriteRenderer>().enabled = false; GetComponent <Collider2D>().enabled = false; if (m_particle != null) { m_particle = ObjectPool.Instantiate(m_particle, transform.position, transform.rotation); StartCoroutine(KillAnimation()); } else { ObjectPool.Kill(gameObject); } }
/*IEnumerator DamagedAnimation() { * for (float f = 0; f <= 1; f += 0.2f) { * m_renderer.color = new Color(215f / 255 * f, 63f / 255 * f, 63f / 255 * f); * Debug.Log("CHANGE: " + m_renderer.color.r + ", " + m_renderer.color.g + ", " + m_renderer.color.b); * yield return new WaitForSeconds(0.1f); * } * * for (float f = 1; f >= 0; f -= 0.2f) { * m_renderer.color = new Color(215f / 255 * f, 63f / 255 * f, 63f / 255 * f); * Debug.Log("CHANGE BACK: " + m_renderer.color.r + ", " + m_renderer.color.g + ", " + m_renderer.color.b); * yield return new WaitForSeconds(0.1f); * } * }*/ void Kill() { SineMovement sm = GetComponent <SineMovement>(); if (sm != null) { sm.enabled = false; } StraightMovement strm = GetComponent <StraightMovement>(); if (strm != null) { strm.enabled = false; } FollowObject fo = GetComponent <FollowObject>(); if (fo != null) { fo.enabled = false; } CircularMovement cm = GetComponent <CircularMovement>(); if (cm != null) { cm.enabled = false; } //Disable the renderer and the Collider GetComponent <SpriteRenderer>().enabled = false; GetComponent <Collider2D>().enabled = false; m_particle.Play(); StartCoroutine(KillAnimation()); }
public void ResetDogPositions() { var dogIndex = 0; foreach (var dog in currentDogs.objects) { if (config.animatedPositions.Count <= dogIndex) { Debug.LogWarning("Total: " + config.animatedPositions.Count + " Index: " + dogIndex); } else { dog.transform.position = config.animatedPositions[dogIndex]; } CircularMovement circular = dog.GetComponent <CircularMovement>(); if (circular != null) { circular.Reset(); } dogIndex++; } }