void SpawnTadpole() { GameObject go = Instantiate(tadpolePrefab, new Vector3(0f, 0f, 0f), Quaternion.identity) as GameObject; Tadpole t = go.GetComponent <Tadpole>(); int vi = Random.Range(0, tadpoleColors.Length); t.SetFinColor(tadpoleColors[vi]); t.tadpoleValue = tadpoleValues[vi]; //Debug.Log(vi); t.speed = (t.tadpoleValue / 2) + 10f; //Random.Range(5f, 50f); // Vector3 pos; if (Random.value < 0.5f) { t.direction = new Vector3(1f, 0f, 0f); pos = new Vector3(leftOfScreen, Random.Range(-10f, 40f), 0f); while (Vector3.Distance(lastSpawnPos, pos) < 10) { pos = new Vector3(leftOfScreen, Random.Range(-10f, 40f), 0f); } t.transform.position = pos; t.transform.Rotate(new Vector3(0f, 180f, 0f)); } else { t.direction = new Vector3(-1f, 0f, 0f); pos = new Vector3(rightOfScreen, Random.Range(-10f, 40f), 0f); while (Vector3.Distance(lastSpawnPos, pos) < 10) { pos = new Vector3(rightOfScreen, Random.Range(-10f, 40f), 0f); } t.transform.position = pos; } lastSpawnPos = new Vector3(pos.x, pos.y, pos.z); }
void CreateWinnerText(Tadpole tadpole) { GameObject newObject = Instantiate(WinnerText, new Vector3(), Quaternion.identity); newObject.transform.SetParent(Canvas.transform, false); Text text = newObject.GetComponent <Text>(); text.text = "[" + tadpole.PlayerName + "]" + "の勝ち!"; }
public void CreateTadpoleAI(Vector3 spawnPosition, int index) { TadpoleAI newTadpoleAI = Instantiate(TadpoleAI, spawnPosition, Quaternion.identity); newTadpoleAI.transform.SetParent(Canvas.transform, false); Tadpole tadpole = newTadpoleAI.gameObject.GetComponentInChildren <Tadpole>(); if (tadpole) { tadpole.PlayerName = "AIその" + (index + 1).ToString(); } }
void CreatePlayerCore(Vector2 spawnPosition, Vector2 size, Color color, string name) { TadpoleTouchController newTadpolePlayer = Instantiate(TadpolePlayer, new Vector3(), Quaternion.identity); newTadpolePlayer.transform.SetParent(Canvas.transform, false); newTadpolePlayer.ChangePlayerTouchInfo(spawnPosition, size); Tadpole tadpole = newTadpolePlayer.gameObject.GetComponentInChildren <Tadpole>(); if (tadpole) { tadpole.PlayerName = name; SpriteRenderer renderer = tadpole.GetComponent <SpriteRenderer>(); if (renderer) { renderer.color = color; } } }
/// <summary> /// コライダーと当たった瞬間. /// </summary> /// <param name="other"></param> void OnTriggerEnter2D(Collider2D other) { if (gameObject && other && isDroped && !isDead) { Tadpole tadPole = other.gameObject.GetComponent <Tadpole>(); // ノックバック中は処理しない if (tadPole && !tadPole.CheckKockBack()) { tadPole.LevelUp(); // 餌死亡処理、callbackを呼び出す. isDead = true; if (OnDeadListeners != null) { this.OnDeadListeners(this); } Destroy(gameObject); } } }
void OnTriggerEnter2D(Collider2D other) { if (gameObject && other) { Tadpole otherTadPole = other.gameObject.GetComponent <Tadpole>(); if (otherTadPole) { // ノックバック中は処理しない if (!otherTadPole.CheckKockBack() && !this.CheckKockBack()) { bool bSpawnFood = false; Vector3 spawnPosition = new Vector3(); Tadpole activeTadpole = null; // よりレベルの高い方を下げる // 同レベルの場合は下がらない if (otherTadPole.Level == this.Level) { } else if (otherTadPole.Level < this.Level) { this.LevelDown(); bSpawnFood = true; spawnPosition = this.transform.position; activeTadpole = otherTadPole; } else { otherTadPole.LevelDown(); bSpawnFood = true; spawnPosition = otherTadPole.transform.position; activeTadpole = this; } float popAccel = 0.0f; Vector3 direction = otherTadPole.transform.position - this.transform.position; direction.Normalize(); // ヒットしてきた対象 otherTadPole.SetDirection(direction); otherTadPole.KockBack(); popAccel = (activeTadpole == null)? POP_ACCEL_ACTIVE : ((activeTadpole == otherTadPole)? POP_ACCEL_ACTIVE: POP_ACCEL_PASSIVE); otherTadPole.AddAccel(popAccel, true); // 自分自身 this.SetDirection(-direction); this.KockBack(); popAccel = (activeTadpole == null)? POP_ACCEL_ACTIVE : ((activeTadpole == this)? POP_ACCEL_ACTIVE: POP_ACCEL_PASSIVE); this.AddAccel(popAccel, true); // エサの配置 if (bSpawnFood) { GameObject.Find("GameMain").GetComponent <GameMain>().CreateFood(spawnPosition, false); } } } } }