using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Rendering.Universal; using UnityEngine.Rendering; public class ItemRenderer : MonoBehaviour { public static ItemRenderer Instance { get; private set; } private Shader unlitShader; private void Awake() { Instance = this; //unlitShader = Shader.Find("Universal Render Pipeline/Unlit"); } //this used to go onto an object in the UI prefab, with a camera. the camera culling mask was only set to `Item` //unused. this is very bad. pre-generate the sprites in editor before releasing as i've done now. much better. //thomas09 //public Sprite renderItem(InventoryItemStats item) //{ // Client.Instance.UnderWaterEffectEnabled = false; // Material mat; // GameObject g = Instantiate(item.gameObject); // foreach (Renderer rend in g.GetComponentsInChildren()) // { // mat = rend.material; // mat.shader = unlitShader; // } // g.transform.position = new Vector3(item.inventoryOffsetX, item.inventoryOffsetY, item.inventoryZoom); // g.transform.localScale = new Vector3(item.inventoryScale, item.inventoryScale, item.inventoryScale); // g.transform.localRotation = Quaternion.Euler(item.inventoryRotationX, item.inventoryRotationY, item.inventoryRotationZ); // g.layer = LayerMask.NameToLayer("Item"); // foreach (Transform child in g.transform) // { // child.gameObject.layer = LayerMask.NameToLayer("Item"); // foreach (Transform grandChild in child.transform) // { // grandChild.gameObject.layer = LayerMask.NameToLayer("Item"); // } // } // Camera cam = GetComponent(); // RenderTexture currentRT = RenderTexture.active; // RenderTexture.active = cam.targetTexture; // GL.Clear(true, true, Color.clear); // cam.Render(); // Texture2D image = new Texture2D(cam.targetTexture.width, cam.targetTexture.height); // image.ReadPixels(new Rect(0, 0, cam.targetTexture.width, cam.targetTexture.height), 0, 0); // image.Apply(); // g.SetActive(false); // DestroyImmediate(g); // RenderTexture.active = currentRT; // Rect imageSize = new Rect(0.0f, 0.0f, image.width, image.height); // Vector2 imagePivot = new Vector2(0.5f, 0.5f); // Sprite itemSprite = Sprite.Create(image, imageSize, imagePivot, pixelsPerUnit: 100, extrude: 0, SpriteMeshType.FullRect); // if (Client.Instance.CheckIfPlayerIsUnderWater()) { Client.Instance.UnderWaterEffectEnabled = true; } // return itemSprite; //} }