Skip to content

Instantly share code, notes, and snippets.

@slembcke
Created December 19, 2016 20:46
Show Gist options
  • Save slembcke/9513cd1493c12cbd1263d685a5cd9004 to your computer and use it in GitHub Desktop.
Save slembcke/9513cd1493c12cbd1263d685a5cd9004 to your computer and use it in GitHub Desktop.
using UnityEngine;
using System.Collections;
[ExecuteInEditMode]
public class TreesCamera : MonoBehaviour {
private void OnEnable(){
Camera.onPreRender += PreRender;
Camera.onPostRender += PostRender;
}
private void OnDisable(){
Camera.onPreRender -= PreRender;
Camera.onPostRender -= PostRender;
}
private void Start(){
GetComponent<Camera>().transparencySortMode = TransparencySortMode.Orthographic;
}
private static Matrix4x4 flipZ = Matrix4x4.Scale(new Vector3(1, 1, -1));
private void PreRender(Camera cam){
var transform = cam.transform;
var m = Matrix4x4.identity;
m.SetColumn(2, -transform.up);
cam.worldToCameraMatrix = flipZ*transform.worldToLocalMatrix*m;
}
private void PostRender(Camera cam){
if(cam.cameraType == CameraType.SceneView) cam.ResetWorldToCameraMatrix();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment