public void UpdateWaveEmittersMaterials() { for (int i = 0; i < waveEmitters.Count; i++) { WaveEmitter currWaveEmitter = waveEmitters[i]; currWaveEmitter.UpdateMaterial(); } }
// Use this for initialization void Start() { //set up the references to other objects go = (GameObject)GameObject.FindGameObjectWithTag("ObjectManager"); myEnemyManager = (EnemyManager)go.GetComponent ("EnemyManager"); go = (GameObject)GameObject.FindGameObjectWithTag("WaveGen"); WE = (WaveEmitter)go.GetComponent("WaveEmitter"); colorIndex=0; }
// Start is called before the first frame update void Start() { waveEmitter = GetComponent <WaveEmitter>(); GameObject main = GameObject.Find("MainSoundControl"); if (main != null) { meshisVisible = main.GetComponent <MainSoundControl>().MeshesAreVisible; GetComponent <MeshRenderer>().enabled = meshisVisible; } }
// Use this for initialization void init() { isActive = false; outofplay = false; waveNum = -1; //gets available paths GameObject go = (GameObject)GameObject.FindGameObjectWithTag("WaveGen"); WE = (WaveEmitter)go.GetComponent ("WaveEmitter"); //pths = (RPathGen)go.GetComponent("RPathGen"); PM = (PathManager)go.GetComponent ("PathManager"); PM.init (); go = (GameObject)GameObject.FindGameObjectWithTag ("MainCamera"); cam1 = (Camera)go.GetComponent ("Camera"); //add iTween component and get ref gameObject.AddComponent("iTweenPath"); path = (iTweenPath)gameObject.GetComponent("iTweenPath"); }
private void OnTriggerEnter(Collider other) { // handle contact with base : teleport Base baseComponent = other.GetComponentInParent <Base>(); if (baseComponent != null && baseComponent != Player.INSTANCE.currentBase) { GameController.INSTANCE.TeleportPlayerToBase(baseComponent); // kill the wave wave.gameObject.DestroyRecursive(); return; } // handle contact with other vibrating objects WaveEmitter waveEmitter = other.GetComponentInParent <WaveEmitter>(); if (waveEmitter != null && waveEmitter.enabled) { if (waveEmitter.waveType == WaveType.FLAT || waveEmitter.waveType != wave.waveType) { if (waveEmitter.canAbsorbWaveType) { // change wave type of the object waveEmitter.ChangeWaveType(wave.waveType); } // kill the wave wave.gameObject.DestroyRecursive(); // gameObject.DestroyRecursive(); } else { // wave can go through // no op } } else { // kill wave // wave.gameObject.DestroyRecursive(); } }
public override void _Ready() { base._Ready(); var vr = ARVRServer.FindInterface("OpenVR"); if (vr != null && vr.Initialize()) { GetViewport().Arvr = true; OS.VsyncEnabled = false; Engine.IterationsPerSecond = 90; } Ribbon = GetNode <Ribbon>("ARVROrigin/Ribbon"); WaveEmitter = GetNode <WaveEmitter>("WaveEmitter"); GameStartTimer = GetNode <Timer>("GameStartTimer"); //GameStartTimer.Start(); }
void OnTriggerEnter2D(Collider2D collider) { WaveEmitter wave = collider.GetComponent <WaveEmitter>(); if (wave != null) { wave.emitting = true; } WaterCrystal crystal = collider.GetComponent <WaterCrystal>(); if (crystal != null) { crystal.emitting = true; } MinerController miner = collider.GetComponent <MinerController>(); if (miner != null) { miner.enabled = true; } }
void Update() { // Keep the Ocean centered on the FollowCamera transform.position = new Vector3(FollowCamera.position.x, 0, FollowCamera.position.z); // Reset waves Vector3[] vertices = mesh.vertices; for (int i = 1; i < vertices.Length; i++) { vertices[i].y = 0; } for (int i = WaveEmitters.Count - 1; i > -1; i--) { WaveEmitter e = WaveEmitters[i]; e.Update(Time.deltaTime); if (!e.HasWaves) { WaveEmitters.RemoveAt(i); } // Is the WaveEmitter outside the ViewDistance? if (Mathf.Sqrt(Mathf.Pow(e.Position.x - transform.position.x, 2) + Mathf.Pow(e.Position.y - transform.position.z, 2)) > e.MaxRadius + ViewDistance) { continue; } // Loop through each vertex in the two intersecting circles formed from the grid and emitter MaxRadius float offsetX = e.Position.x - transform.position.x; float offsetY = e.Position.y - transform.position.z; int zMin = Mathf.Max(0, (int)((offsetY - e.MaxRadius + gridCenter) / TileSize)); int zMax = Mathf.Min(vertexGrid.GetLength(0) - 1, (int)((offsetY + e.MaxRadius + gridCenter) / TileSize)); for (int z = zMin; z <= zMax; z++) { float width = Mathf.Sqrt(Mathf.Pow(e.MaxRadius, 2) - Mathf.Pow(-offsetY + z * TileSize - gridCenter, 2)); int xMin = Mathf.Max(gridEdges[z, 0], (int)((offsetX - width + gridCenter) / TileSize)); int xMax = Mathf.Min(gridEdges[z, 1], (int)((offsetX + width + gridCenter) / TileSize)); for (int x = xMin; x <= xMax; x++) { int index = vertexGrid[x, z]; if (index > 0) { vertices[index].y += e.GetWaveHeight(vertices[index].x + transform.position.x, vertices[index].z + transform.position.z); } } } } mesh.vertices = vertices; // Flip surface normals if the FollowCamera moves through the water plane bool oldUnderwater = isUnderwater; isUnderwater = GetHeightAtLocation(transform.position.x, transform.position.y) > FollowCamera.position.y; if (isUnderwater != oldUnderwater) { for (int m = 0; m < mesh.subMeshCount; m++) { int[] triangles = mesh.GetTriangles(m); for (int i = 0; i < triangles.Length; i += 3) { int temp = triangles[i + 0]; triangles[i + 0] = triangles[i + 1]; triangles[i + 1] = temp; } mesh.SetTriangles(triangles, m); } if (isUnderwater) { SetUnderwater(); } else { SetOverwater(); } } mesh.RecalculateNormals(); SetTextureOffset(new Vector2(transform.position.x, transform.position.z)); }
public void setDifficulty(int difficulty) { //used to set the defaul values for the waves locmin = 1; if ( difficulty>4) locmax = 5; else locmax = 1+difficulty; twaveDuration = 10.0f; minEnemies = 2+difficulty; maxEnemies = 4+difficulty; WaveType = -1; //set initial wave goals they will be incremented with the first wave so they should start lower killamt = 6+difficulty; //killStreak = 3+difficulty; //create reference to the WaveEmitter GameObject go = (GameObject)GameObject.FindGameObjectWithTag("WaveGen"); WE = (WaveEmitter)go.GetComponent ("WaveEmitter"); //TODO change the rest of the game settings }