void GenerateSymbol() { int spawningPoint_Index = UnityEngine.Random.Range(0, level.spawningPoints.Length); //Ojo, primero inclusivo y segundo exclusivo RectTransform spawningPoint = level.spawningPoints[spawningPoint_Index].transform; Vector2 direction = level.spawningPoints[spawningPoint_Index].Direction; float symbolSpeed = UnityEngine.Random.Range(level.symbolMinSpeed, level.symbolMaxSpeed + 1); SymbolMovement symbolMov = level.symbolMov; // Instantiate SymbolMovement newSymbolMov; newSymbolMov = Instantiate(symbolMov, spawningPoint.localPosition, transform.rotation) as SymbolMovement; // Si encuentro una forma mejor de hacerlo, lo haré... Spaguetti intensifies! newSymbolMov.GetComponent <Rigidbody2D>().velocity = transform.TransformDirection(direction * symbolSpeed); // Asigno la velocidad lineal (De momento fija, pero haremos un random ahora) newSymbolMov.Symbol = AllGestures.GetRandomSymbol(); //Se le asigna uno de los símbolos disponibles aleatoriamente (la imagen se asigna sola) newSymbolMov.transform.SetParent(this.transform, false); }
private void UpdateScore(SymbolMovement symbol) { // Puntuación = puntos fijos por acierto + velocidad * 5 - tamaño rangos / 3 float velocity = symbol.Rigidbody.velocity.magnitude; float rangeScale = level.ranges[0].transform.localScale.x; int obtainedScore = Mathf.RoundToInt(150 + velocity * 5 - rangeScale / 3); // Sale la nueva puntuación (trigger a animator), y cuando acaba la animación se actualiza. newScoreText.text = "+ " + obtainedScore; //newScoreAnimator.SetTrigger("Scored"); score += obtainedScore; // Actualizo puntuación scoreText.text = score.ToString(); }
public void DestroySymbol(SymbolMovement symbol) { symbolsInsideRange.Remove(symbol); Destroy(symbol); }
public void RemoveAvailableSymbol(SymbolMovement symbol) { symbolsInsideRange.Remove(symbol); }
public void AddAvailableSymbol(SymbolMovement symbol) { symbolsInsideRange.Add(symbol); }