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); }
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; }
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); } }
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"); }
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>(); }
private void Awake() { movement = GetComponent <ObstacleMovement>(); }
//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 }
private void Start() { SpawnLevel(firstLevelSpawnPoint); obstacleMovement = FindObjectOfType <ObstacleMovement>(); }
public void UpScore(ObstacleMovement obsmove) { Score += obsmove.GetPoints(); ScoreText.text = "Score : " + Score; }
public void ReturnToPool(ObstacleMovement obstacle) { obstacle.gameObject.SetActive(false); obstacles.Enqueue(obstacle); }