Unity Examples

Various demos

Terrain Examples

How to intercept a mouse press on terrain:

using UnityEngine; 
using System.Collections;

public class TerrainHit : MonoBehaviour
{
    public GameObject goTerrain;

    void Update() {
            if (Input.GetMouseButtonDown (1)) {
                RaycastHit hit;
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (goTerrain.collider.Raycast (ray, out hit, Mathf.Infinity)) {
                    transform.position = hit.point;
                }
            }
        }
    }
}

Light Fader

This is a short script, that adapts brightness and color of a light according to the setup.

using UnityEngine;
using System.Collections;

[HelpURL("http://manuals.clawjelly.net/Unity/examples/#light-fader")]
public class LightFader : MonoBehaviour {

    [Tooltip("How long the light is shining")]
    public float duration = 1.0f;
    [Tooltip("Loops the light and doesn't deactivate it.")]
    public bool loopAnimation = false;
    private float currentFadeTime;
    private Light myLight;
    [SerializeField]
    [Tooltip("The intensity over time")]
    AnimationCurve interpolationCurve;
    [SerializeField]
    [Tooltip("The color over time")]
    Gradient lightColorGradient;

    // Use this for initialization
    void Start () {
        myLight = GetComponent<Light>();
    }

    // Update is called once per frame
    void Update () {
        currentFadeTime += Time.deltaTime / duration;
        if (currentFadeTime<1.0f)
        {
            myLight.intensity=interpolationCurve.Evaluate(currentFadeTime);
            myLight.color=lightColorGradient.Evaluate(currentFadeTime);
        }
        else
        {
            currentFadeTime=0.0f;
            Debug.Log(loopAnimation);
            if (!loopAnimation)
                gameObject.SetActive(false);
        }
    }
}