Website may be up and down over next few months. I'm currently doing a complete overhaul of everything. Going back to simple individual .htm pages, new overall site theme, sanitizing and cleaning up html of all pages and blog posts, attempting to implement a new tooling and publishing system etc etc.

Unity provides support for location awareness such as  longitude, latitude, and altitude in the LocationService class.


Unity provides built in support for various social platforms including support for custom implementations through the Social class.


If the device supports it you can use the Gyroscope class to get gyroscopic information about the orientation and acceleration  of the device.


You can get detailed system information by using the SystemInfo class. SystemInfo provides information on the graphic device hardware, processor count, operating system, device type and more. Very handy for gathering stats/trends on your users hardware specs.


The Unity API provides access to a OpenGL style graphics for immediate mode drawing in the class called “GL”.


You can perform Frustum and AABB collision detection using something similar to the fallowing code ...

public object[] GetObjects(Vector3 position, float distance, float fov, Vector3 direction)
        {
            var results = new List<GameObject>();

            // search all game objects
            var objects = UnityEngine.Object.FindObjectsOfType(typeof(GameObject));

            if (this.camera == null)
            {
                this.cameraGameObject = new GameObject();
                this.camera = this.cameraGameObject.AddComponent<Camera>();
            }

            this.cameraGameObject.transform.position = position;
            this.cameraGameObject.transform.forward = direction;
            this.camera.fov = fov;
            this.camera.far = distance;

            var planes = GeometryUtility.CalculateFrustumPlanes(this.camera);

            foreach (GameObject obj in objects)
            {
                if (obj == this.cameraGameObject)
                {
                    continue;
                }

                // if no collider just ignore
                if (obj.collider == null)
                {
                    continue;
                }

                if (GeometryUtility.TestPlanesAABB(planes, obj.collider.bounds))
                {
                    results.Add(obj);
                }
            }

            return results.ToArray();
        }


You can get access to more powerful controls by using an undocumented unity api the TextEditor control.

var te = (TextEditor)GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl);
if (te != null)
{
    te.MoveCursorToPosition(new Vector2(5555, 5555));
}

If you need to know what symbols Unity uses for conditional compilation check out the docs page Platform Dependent Compilation


If you need to know what platform your code is running under you can use Application.platform.


If you need to run some script code as soon as the editor has launched you can use the InitializeOnLoad attribute.


Created by: X

Just another personal website in this crazy online world

Name of author Dean Lunz (aka Created by: X)
Computer programming nerd, and tech geek.
About Me -- Resume