private GameObject CreateKunai(Vector3 startPosition) { var resultObject = Instantiate(kunaiObject, startPosition, Quaternion.identity); resultObject.name = StaticVariables.GetKunaiName(_kunaiId); resultObject.transform.parent = transform; resultObject.transform.localScale -= new Vector3(_gameScript.gameState.Scale, _gameScript.gameState.Scale, _gameScript.gameState.Scale); _kunaiId++; return(resultObject); }
void Update() { switch (_state) { case (State.Idle): if (Input.GetMouseButtonDown(0)) { _state = State.Flying; } break; case (State.Flying): if (IsIntersects(_logObject.GetComponent <CircleCollider2D>().bounds)) { Stuck(_logObject.transform); _levelScript.Stuck(); var desiredPosition = _logObject.transform.position.y - _gameState.LogHeight / 2 - _gameState.KunaiHeight / 2 + StaticVariables.KunaiMargin; transform.Translate(0, desiredPosition - transform.position.y, 0); } else { if (_apple != null && IsIntersects(_apple.GetComponent <CircleCollider2D>().bounds)) { _levelScript.HitApple(); } var missed = false; var kunaiId = 0; var stuckKunai = _logObject.transform.Find(StaticVariables.GetKunaiName(kunaiId)); while (stuckKunai != null) { missed = missed || IsIntersects(stuckKunai.GetComponent <PolygonCollider2D>().bounds); kunaiId++; stuckKunai = _logObject.transform.Find(StaticVariables.GetKunaiName(kunaiId)); } if (missed) { _levelScript.Missed(); } else { transform.Translate(0, 2 * _gameState.ScreenHeight * Time.deltaTime, 0); } } break; } }