Example #1
0
    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);
    }
Example #2
0
 // 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;
 }
Example #3
0
    private void Awake()
    {
        if (CV == null)
        {
            CV = this;
        }
        else if (CV != this)
        {
            Destroy(gameObject);
        }

        DontDestroyOnLoad(gameObject); // Persist between levels
    }
Example #4
0
    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);
        }
    }
Example #5
0
    // 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;
            }
        }
    }