using System.Collections.Generic; using UnityEngine; public class OvrAvatarProjectorRenderComponent : OvrAvatarRenderComponent { private Material material; internal void InitializeProjectorRender(ovrAvatarRenderPart_ProjectorRender render, Shader shader, OvrAvatarRenderComponent target) { if (shader == null) { shader = Shader.Find("OvrAvatar/AvatarSurfaceShader"); } material = CreateAvatarMaterial(base.gameObject.name + "_projector", shader); material.EnableKeyword("PROJECTOR_ON"); Renderer component = target.GetComponent(); if (component != null) { List list = new List(component.sharedMaterials); list.Add(material); component.sharedMaterials = list.ToArray(); } } internal void UpdateProjectorRender(OvrAvatarComponent component, ovrAvatarRenderPart_ProjectorRender render) { OvrAvatar.ConvertTransform(render.localTransform, base.transform); material.SetMatrix("_ProjectorWorldToLocal", base.transform.worldToLocalMatrix); component.UpdateAvatarMaterial(material, render.materialState); } private void OnDrawGizmos() { Vector3 vector = base.transform.localToWorldMatrix.MultiplyPoint(new Vector3(-1f, -1f, -1f)); Vector3 vector2 = base.transform.localToWorldMatrix.MultiplyPoint(new Vector3(1f, -1f, -1f)); Vector3 vector3 = base.transform.localToWorldMatrix.MultiplyPoint(new Vector3(-1f, 1f, -1f)); Vector3 vector4 = base.transform.localToWorldMatrix.MultiplyPoint(new Vector3(1f, 1f, -1f)); Vector3 vector5 = base.transform.localToWorldMatrix.MultiplyPoint(new Vector3(-1f, -1f, 1f)); Vector3 vector6 = base.transform.localToWorldMatrix.MultiplyPoint(new Vector3(1f, -1f, 1f)); Vector3 vector7 = base.transform.localToWorldMatrix.MultiplyPoint(new Vector3(-1f, 1f, 1f)); Vector3 to = base.transform.localToWorldMatrix.MultiplyPoint(new Vector3(1f, 1f, 1f)); Gizmos.color = Color.gray; Gizmos.DrawLine(vector, vector2); Gizmos.DrawLine(vector, vector3); Gizmos.DrawLine(vector3, vector4); Gizmos.DrawLine(vector2, vector4); Gizmos.DrawLine(vector, vector5); Gizmos.DrawLine(vector2, vector6); Gizmos.DrawLine(vector3, vector7); Gizmos.DrawLine(vector4, to); Gizmos.DrawLine(vector5, vector6); Gizmos.DrawLine(vector5, vector7); Gizmos.DrawLine(vector7, to); Gizmos.DrawLine(vector6, to); } }