ClientServer/Client/Assets/Scripts/UI/ItemRenderer.cs
TG9six 03a642d635 first push
first push
2025-09-06 17:17:39 +04:00

72 lines
2.7 KiB
C#

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<MeshRenderer>())
// {
// 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<Camera>();
// 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;
//}
}