Beispiel #1
0
    private void SetObstacleFeatures(ObstacleMovement m, float currentXPosition)
    {
        LevelSettings s = levelSpecs.Get(currentLevel);

        // Speed
        float speed = Random.Range(s.minForce, s.maxForce);

        m.SetSpeed(speed);

        // Scale
        float width  = Random.Range(s.minObstacleWidth, s.maxObstacleWidth);
        float height = Random.Range(s.minObstacleHeight, s.maxObstacleHeight);

        m.SetScale(new Vector3(width, height, 1f));

        // Position
        float offsetX     = Random.Range(s.offsetXMin, s.offsetXMax);
        float offsetZ     = Random.Range(s.offsetZMin, s.offsetZMax);
        float halfWidth   = width / 2;
        float leftMargin  = Mathf.Min(0, PATH_LEFT - (currentXPosition - halfWidth));
        float rightMargin = Mathf.Max(0, PATH_RIGHT - (currentXPosition + halfWidth));

        offsetX = Mathf.Clamp(offsetX, leftMargin, rightMargin);
        Vector3 offset = new Vector3(offsetX, 0f, offsetZ);

        m.SetPositionOffset(offset);

        // Color
        Color    color = s.color;
        Renderer r     = m.GetComponent <Renderer>();

        r.material.SetColor("_Color", color);
    }
Beispiel #2
0
    void SpawnBlocks()
    {
        int randomIndex = Random.Range(0, spawnPoints.Length);

        for (int i = 0; i < spawnPoints.Length; i++)
        {
            switch (currentLevel)
            {
            case 1:
                if (randomIndex == i)
                {
                    ObstacleMovement m = Instantiate(blockPrefab, spawnPoints[i].position, Quaternion.identity);
                    SetObstacleFeatures(m, spawnPoints[i].position.x);
                }
                break;

            case 2:
            case 3:
                if (randomIndex != i)
                {
                    ObstacleMovement m = Instantiate(blockPrefab, spawnPoints[i].position, Quaternion.identity);
                    SetObstacleFeatures(m, spawnPoints[i].position.x);
                }
                break;

            case 4:
            {
                ObstacleMovement m = Instantiate(blockPrefab, spawnPoints[i].position, Quaternion.identity);
                SetObstacleFeatures(m, spawnPoints[i].position.x);
            }
            break;
            }
        }
    }
 void OnCollisionEnter(Collision other)
 {
     if (other.gameObject.tag == "Character")
     {
         GetComponent <Renderer>().material = hitMaterial;
         ObstacleMovement movement = GetComponent <ObstacleMovement>();
         if (movement != null)
         {
             movement.enabled = false;
         }
     }
 }
 void SetInitialReferences()
 {
     animController    = GetComponent <LostChildAnimation>();
     lostChildMovement = gameObject.GetComponent <ObstacleMovement>();
     targetPlayer      = GameObject.FindGameObjectWithTag("Player").transform;
     rb = GetComponent <Rigidbody>();
     distanceToGround = GetComponent <Collider>().bounds.extents.y;
     if (targetPlayer == null)
     {
         Debug.LogError("No PlayerGameObject in the current Scene!");
         return;
     }
 }
    void Start()
    {
        GameObject thePlayer = GameObject.Find("Main Camera");

        audioScript = thePlayer.GetComponent <AudioSettings>();
        GameObject managerObject = GameObject.Find("Manager");

        manager = managerObject.GetComponent <Manager>();
        GameObject ObstacleMovement = GameObject.Find("Obstacle");

        obstacleMovement = managerObject.GetComponent <ObstacleMovement>();
        speed            = manager.speed;
    }
Beispiel #6
0
    private void AddObstacle()
    {
        for (int i = 0; i < Obstacles.Count; i++)
        {
            ObstacleMovement obs = Obstacles[i].GetComponent <ObstacleMovement>();
            obs.Origin = new Vector3(Water_PNLS[i].transform.position.x, obs.Origin.y, 0);
        }

        if (Obstacle_Prefabs.Count > 0)
        {
            System.Random rand        = new System.Random((int)DateTime.Now.Ticks);
            int           ind         = rand.Next(0, Obstacle_Prefabs.Count);
            GameObject    newObstacle = Instantiate(Obstacle_Prefabs[ind], new Vector3(Water_PNLS[Water_PNLS.Count - 1].transform.localPosition.x, Obstacle_Tracks[ind], 0), Quaternion.identity, Water_Scroll.transform);
            newObstacle.GetComponent <ObstacleMovement>().Game = Game;
            Obstacles.Add(newObstacle);
        }
    }
Beispiel #7
0
 private void OnEnable()
 {
     script             = (ObstacleMovement)target;
     e_bob              = serializedObject.FindProperty("bob");
     e_bobSpeed         = serializedObject.FindProperty("bobspeed");
     e_bobStrength      = serializedObject.FindProperty("bobStrength");
     e_sway             = serializedObject.FindProperty("sway");
     e_swaySpeed        = serializedObject.FindProperty("swaySpeed");
     e_swayStrength     = serializedObject.FindProperty("swayStrength");
     e_teeter           = serializedObject.FindProperty("teeter");
     e_teeterSpeed      = serializedObject.FindProperty("teeterSpeed");
     e_maxTeeter        = serializedObject.FindProperty("maxTeeter");
     e_rightLeft        = serializedObject.FindProperty("rightLeft");
     e_rightLeftSpeed   = serializedObject.FindProperty("rightLeftSpeed");
     e_maxRightLeftDist = serializedObject.FindProperty("maxRightLeftDist");
     e_upDown           = serializedObject.FindProperty("upDown");
     e_upDownSpeed      = serializedObject.FindProperty("upDownSpeed");
     e_maxUpDownDist    = serializedObject.FindProperty("maxUpDownDist");
     e_flipX            = serializedObject.FindProperty("flipX");
     e_flipY            = serializedObject.FindProperty("flipY");
 }
Beispiel #8
0
    void SpawnObstacle()
    {
        float newX = startingPosition;

        if (lastObstacle != null)
        {
            newX = lastObstacle.transform.position.x + obstaclesDistance;
        }

        float newY = Random.Range(-maxHeightDelta, maxHeightDelta);

        if (lastObstacle != null)
        {
            newY += lastObstacle.transform.position.y;
        }

        newY = Mathf.Clamp(newY, -maxY, maxY);

        GameObject newObject = Instantiate(obstaclePrefab, new Vector3(newX, newY), Quaternion.identity);

        lastObstacle = newObject.GetComponent <ObstacleMovement>();
    }
Beispiel #9
0
 private void Awake()
 {
     movement = GetComponent <ObstacleMovement>();
 }
Beispiel #10
0
    //void SetSpawnPoint() {
    //    obstacleMovement = levelsArray[levelIndex].GetComponent<ObstacleMovement>();
    //    spawnPoint = currentLevelLength + nextLevelLength / 2f - Mathf.Abs(obstacleMovement.zeroPositionZ) +
    //       obstacleMovement.levelOffset; // 20f - distance betwenn levels
    //}

    void SetSpawnPoint()
    {
        obstacleMovement = levelsArray[levelIndex].GetComponent <ObstacleMovement>();
        spawnPoint       = currentLevelLength + nextLevelLength / 2f + obstacleMovement.zeroPositionZ +
                           obstacleMovement.levelOffset; // 20f - distance betwenn levels
    }
Beispiel #11
0
 private void Start()
 {
     SpawnLevel(firstLevelSpawnPoint);
     obstacleMovement = FindObjectOfType <ObstacleMovement>();
 }
Beispiel #12
0
 public void UpScore(ObstacleMovement obsmove)
 {
     Score         += obsmove.GetPoints();
     ScoreText.text = "Score : " + Score;
 }
Beispiel #13
0
 public void ReturnToPool(ObstacleMovement obstacle)
 {
     obstacle.gameObject.SetActive(false);
     obstacles.Enqueue(obstacle);
 }