72 lines
2.7 KiB
C#
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;
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
}
|