private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "Friend" && indexFromHead == 0) { FriendMover cfm = collision.GetComponent <FriendMover>(); if (cfm.state == eState.Floating) { friendsManager.AttachFriend(cfm); } else if (6 < cfm.indexFromHead) { friendsManager.AttackedAt(cfm); //collision.GetComponent<FriendMover>().Die(); } } else if (collision.tag == "meteo") { if (state == eState.Moving && !isWounded) { collision.GetComponent <CrushMeteo>().Crush(); if (Item_Effect.b_Crown) { return; } else { //Die(); friendsManager.AttackedAt(this); } } } }
void Awake() { activeBoltsObj = new List <GameObject>(); inactiveBoltsObj = new List <GameObject>(); //meteoManager = GameObject.Find("GameManager").GetComponent<newMeteo>(); friendMover = transform.GetComponentInParent <FriendMover>(); for (int i = 0; i < maxBolts; i++) { GameObject bolt = (GameObject)Instantiate(BoltPrefab); bolt.transform.parent = transform; // Initialize our lightning with a preset number of max segments bolt.GetComponent <LightningBolt>().Initialize(10); bolt.SetActive(false); // Store in our inactive list inactiveBoltsObj.Add(bolt); } audio = GetComponent <AudioSource>(); }
private void Awake() { friendMover = GetComponentInParent <FriendMover>(); barrierImage = GetComponent <SpriteRenderer>(); barrierImage.enabled = false; audio = GetComponent <AudioSource>(); isTurnedOn = false; }
private void Awake() { for (int i = 0; i < MaxNumOfSpikeBomb; ++i) { spikeBomb = Instantiate(SpikeBombPrefab).GetComponent <SpikeBomb>(); spikeBomb.transform.parent = transform; spikeBomb.gameObject.SetActive(false); } friendMover = GetComponentInParent <FriendMover>(); audio = GetComponent <AudioSource>(); }
private void Awake() { for (int i = 0; i < MaxNumOfStar; ++i) { GameObject star = Instantiate(StarPrefab); star.transform.parent = transform; star.SetActive(false); } friendMover = GetComponentInParent <FriendMover>(); audio = GetComponent <AudioSource>(); }
private void Awake() { for (int i = 0; i < MaxNumOfMissile; ++i) { GameObject missile = Instantiate(MissilePrefab); missile.transform.parent = transform; missile.SetActive(false); } friendMover = GetComponentInParent <FriendMover>(); audio = GetComponent <AudioSource>(); elapsedTime = .0f; }
private void Awake() { MovingFriends = new List <FriendMover>(); FloatingFriends = new List <FriendMover>(); InActiveFriends = new List <FriendMover>(); changeDirectionPoint = new LinkedList <Vector2>(); Transform friendPoolHolder = GameObject.Find("FriendPoolHolder").transform; if (friendPoolHolder == null) { friendPoolHolder = (new GameObject("FriendPoolHolder")).transform; } // Set start Charater GameObject f = GameObject.Find("StartFriend"); f.transform.parent = friendPoolHolder; FriendMover fm = f.GetComponent <FriendMover>(); //fm.isMoving = true; fm.state = FriendMover.eState.Moving; fm.indexFromHead = 0; fm.Speed = MovingSpeedAtStart; fm.CircleCenter = (Vector2)transform.position + Vector2.right * fm.Radius; MovingFriends.Add(fm); // Pre-make objects to pool int NumberOfFriends = FriendsPrefab.Length; for (int i = 50 / NumberOfFriends; 0 < i; i--) { for (int j = NumberOfFriends - 1; 0 <= j; j--) { GameObject friend = Instantiate(FriendsPrefab[j]); friend.transform.parent = friendPoolHolder; friend.SetActive(false); InActiveFriends.Add(friend.GetComponent <FriendMover>()); } } InvokeRepeating("SpawnFriends", 1.5f, 5.0f); }
public void AttackedAt(FriendMover attackedFriend) { // 한마리만 남았을떄 if (MovingFriends.Count == 1) { if (attackedFriend.health > 1) { attackedFriend.health--; return; } GameObject.Find("FriendPoolHolder").SetActive(false); score_Panel.SetActive(true); GameObject.Find("GameManager").SetActive(false); } // 두마리 이상 else { int idx = -1; if (attackedFriend.indexFromHead == 0) // 내가 머리인 경우 { if (attackedFriend.health > 1) { attackedFriend.health--; return; } idx = MovingFriends.Count - 2; } else { idx = MovingFriends.IndexOf(attackedFriend); } for (int i = idx; 0 <= i; --i) { MovingFriends[i].Die(); } for (int i = idx + 1; i < MovingFriends.Count; ++i) { MovingFriends[i].Flicker(2.0f); } //MovingFriends.RemoveRange(0, idx + 1); } }
void SpawnFriends() { if (InActiveFriends.Count <= 0) { return; } float x = Random.Range(-5f, 5f); float y = Random.Range(-9f, 9f); int cha = Random.Range(0, InActiveFriends.Count - 1); //InActiveFriends.Count - 3; FriendMover newFriend = InActiveFriends[cha]; InActiveFriends.RemoveAt(cha); newFriend.gameObject.SetActive(true); newFriend.transform.position = new Vector3(x, y); newFriend.state = FriendMover.eState.Floating; FloatingFriends.Add(newFriend); }
public void AttachFriend(FriendMover newFriend) { // Scoring ScoringManager.save_Score += 100; // FloatingFriends 에서 찾고, 제거하고 FloatingFriends.Remove(newFriend); // MovingFriends에 넣고 FriendMover head = MovingFriends[MovingFriends.Count - 1]; float thetaAhead = DistanceBetweenFriends / head.Radius; if (head.IsClockwise) { thetaAhead *= -1.0f; } Vector2 centerToCurrent = (Vector2)head.transform.position - head.CircleCenter; Vector2 centerToTarget = new Vector2( Mathf.Cos(thetaAhead) * centerToCurrent.x - Mathf.Sin(thetaAhead) * centerToCurrent.y, Mathf.Sin(thetaAhead) * centerToCurrent.x + Mathf.Cos(thetaAhead) * centerToCurrent.y ); newFriend.transform.position = head.CircleCenter + centerToTarget; newFriend.transform.rotation = Quaternion.identity; FriendMover newFriendMover = newFriend.GetComponent <FriendMover>(); newFriendMover.Speed = head.Speed; newFriendMover.state = FriendMover.eState.Moving; newFriendMover.indexFromHead = 0; newFriendMover.CircleCenter = head.CircleCenter; newFriendMover.IsClockwise = head.IsClockwise; MovingFriends.Add(newFriendMover); for (int i = MovingFriends.Count - 2; 0 <= i; --i) { MovingFriends[i].indexFromHead++; } }
private void Awake() { bullets = new GameObject[BulletNum]; bulletsDirection = new Vector3[BulletNum]; Quaternion rot; for (int i = 0; i < BulletNum; ++i) { rot = Quaternion.Euler(.0f, .0f, i * (360.0f / BulletNum)); bullets[i] = Instantiate(BulletPrefab, Vector3.zero, rot); bullets[i].transform.parent = transform; bullets[i].SetActive(false); bulletsDirection[i] = rot * Vector3.right; } friendMover = GetComponentInParent <FriendMover>(); audio = GetComponent <AudioSource>(); SetBulletColor(Color.yellow); }
private void Awake() { lasers = new GameObject[LaserNum]; lasersDirection = new Vector3[LaserNum]; Quaternion rot; for (int i = 0; i < LaserNum; ++i) { rot = Quaternion.Euler(.0f, .0f, i * (360.0f / LaserNum)); lasers[i] = Instantiate(LaserPrefab, Vector3.zero, rot); lasers[i].transform.parent = transform; lasers[i].SetActive(false); lasersDirection[i] = rot * Vector3.right; } friendMover = GetComponentInParent <FriendMover>(); audio = GetComponent <AudioSource>(); elapsedTime = .0f; laserColor = new Color(77.0f / 255, 255.0f / 255, 184.0f / 255); //SetLaserColor(new Color(77.0f/255, 255.0f/255, 184.0f/255)); }