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.

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


You can use Application.ExternalCall to call JavaScript functions on the page the web player is displayed in.


Did you know you can pass in command line arguments when running Unity as well as with the standalone players! Read Here.


If you need to get more detailed logging information check out the Log Files page. 


If you have a modal with animation(s) you can export the model without any animation. Then export additional copies of the model with animation and with the same name but with “@animationname” at the end of the file name. Read the section on “Importing Animations using multiple model files” here.


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