void OnTriggerEnter(Collider other) { ParticleSystem burstVFX = Instantiate(burstEffect, transform.position, Quaternion.identity) as ParticleSystem; var burstSetting = burstVFX.main; burstSetting.startColor = projectileColor; burstVFX.Play(); RaycastHit hit; Vector3 velocity = GetComponent <Rigidbody> ().velocity.normalized; Vector3 rayDir = Vector3.Lerp(velocity, Random.onUnitSphere, 0.49f); float hardCodedDistance = 0.5f; Vector3 origin = transform.position - velocity * hardCodedDistance; //Vector3 if (Physics.Raycast(origin, rayDir, out hit, 100)) { Vector2 hitCoord; if (hit.collider is MeshCollider) { hitCoord = hit.textureCoord2; } else { hitCoord = hit.textureCoord; } CanvasBehavior canvas = hit.collider.gameObject.GetComponent <CanvasBehavior> (); if (canvas != null) { canvas.ProjectileDraw(ProjectileManager.SplashAlphaInfo, projectileColor, hitCoord); } SpawnChildren(hit, velocity); } Destroy(gameObject); }
// Use this for initialization void Start() { Player = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerMovement>(); Player.setSaves(savesLeft); CV = GameObject.FindGameObjectWithTag("UI").GetComponent <CanvasBehavior>(); CV.setSaveText(savesLeft); isGameOver = false; }
private void Awake() { if (CV == null) { CV = this; } else if (CV != this) { Destroy(gameObject); } DontDestroyOnLoad(gameObject); // Persist between levels }
void Cast() { Ray ray = cam.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { CanvasBehavior canvas = hit.collider.gameObject.GetComponent <CanvasBehavior> (); if (canvas != null) { texCoord = hit.textureCoord; canvas.BrushDraw(splashTexture, texCoord); } ProcTerrain.SetHeight(texCoord, splashTexture); } }
// Update is called once per frame void Update() { if (!isGameOver) { // New Level Loaded if (Player == null) { Player = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerMovement>(); Player.setSaves(savesLeft); } if (CV == null) { CV = GameObject.FindGameObjectWithTag("UI").GetComponent <CanvasBehavior>(); CV.setSaveText(savesLeft); } } else { GameObject[] stars = GameObject.FindGameObjectsWithTag("Stars"); // Check length in case update runs before GameOver has loaded and array size is 0 if (stars.Length > 0) { // Black out textures for unearned stars for (int i = stars.Length - 1; i >= savesLeft; i--) { stars[i].GetComponent <Renderer>().material.color = (new Color(0, 0, 0)); } } // Restart game if (Input.GetKeyDown(KeyCode.R)) { SceneManager.LoadScene("Level1"); isGameOver = false; savesLeft = 3; } } }