Insanely huge initial commit

This commit is contained in:
2026-02-21 17:04:05 -08:00
parent 9cdd36191a
commit 613d75914a
22525 changed files with 4035207 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
using UnityEngine;
using UnityEngine.UI;
namespace AllIn1SpriteShader
{
public class All1ShaderDemoController : MonoBehaviour
{
[SerializeField] private DemoCircleExpositor[] expositors = null;
[SerializeField] private Text expositorsTitle = null, expositorsTitleOutline = null;
public float expositorDistance;
private int currExpositor;
[SerializeField] private GameObject background = null;
private Material backgroundMat;
[SerializeField] private float colorLerpSpeed = 0;
private Color[] targetColors;
private Color[] currentColors;
void Start()
{
currExpositor = 0;
SetExpositorText();
for (int i = 0; i < expositors.Length; i++) expositors[i].transform.position = new Vector3(0, expositorDistance * i, 0);
backgroundMat = background.GetComponent<Image>().material;
targetColors = new Color[4];
targetColors[0] = backgroundMat.GetColor("_GradTopLeftCol");
targetColors[1] = backgroundMat.GetColor("_GradTopRightCol");
targetColors[2] = backgroundMat.GetColor("_GradBotLeftCol");
targetColors[3] = backgroundMat.GetColor("_GradBotRightCol");
currentColors = targetColors.Clone() as Color[];
}
void Update()
{
GetInput();
currentColors[0] = Color.Lerp(currentColors[0], targetColors[(0 + currExpositor) % targetColors.Length], colorLerpSpeed * Time.deltaTime);
currentColors[1] = Color.Lerp(currentColors[1], targetColors[(1 + currExpositor) % targetColors.Length], colorLerpSpeed * Time.deltaTime);
currentColors[2] = Color.Lerp(currentColors[2], targetColors[(2 + currExpositor) % targetColors.Length], colorLerpSpeed * Time.deltaTime);
currentColors[3] = Color.Lerp(currentColors[3], targetColors[(3 + currExpositor) % targetColors.Length], colorLerpSpeed * Time.deltaTime);
backgroundMat.SetColor("_GradTopLeftCol", currentColors[0]);
backgroundMat.SetColor("_GradTopRightCol", currentColors[1]);
backgroundMat.SetColor("_GradBotLeftCol", currentColors[2]);
backgroundMat.SetColor("_GradBotRightCol", currentColors[3]);
}
private void GetInput()
{
if (Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKeyDown(KeyCode.A))
{
expositors[currExpositor].ChangeTarget(-1);
}
else if (Input.GetKeyDown(KeyCode.RightArrow) || Input.GetKeyDown(KeyCode.D))
{
expositors[currExpositor].ChangeTarget(1);
}
else if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.W))
{
ChangeExpositor(-1);
}
else if (Input.GetKeyDown(KeyCode.DownArrow) || Input.GetKeyDown(KeyCode.S))
{
ChangeExpositor(1);
}
}
private void ChangeExpositor(int offset)
{
currExpositor += offset;
if (currExpositor > expositors.Length - 1) currExpositor = 0;
else if (currExpositor < 0) currExpositor = expositors.Length - 1;
SetExpositorText();
}
private void SetExpositorText()
{
expositorsTitle.text = expositors[currExpositor].name;
expositorsTitleOutline.text = expositors[currExpositor].name;
}
public int GetCurrExpositor() { return currExpositor; }
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b549ed925b49d274c876184f60faabdf
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,57 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace AllIn1SpriteShader
{
public class All1TextureOffsetOverTime : MonoBehaviour
{
[SerializeField] private string texturePropertyName = "_MainTex";
[SerializeField] private Vector2 offsetSpeed = Vector2.zero;
[SerializeField, Header("If missing will search object Sprite Renderer or UI Image")]
private Material mat;
private int textureShaderId;
private Vector2 currOffset = Vector2.zero;
private void Start()
{
//Get material if missing
if (mat == null)
{
SpriteRenderer sr = GetComponent<SpriteRenderer>();
if (sr != null) mat = sr.material;
else
{
Image i = GetComponent<Image>();
if (i != null) mat = i.material;
}
}
//Show error message if material or textureName property error
//Otherwise cache shader property ID
if (mat == null) DestroyComponentAndLogError(gameObject.name + " has no valid Material, deleting All1TextureOffsetOverTIme component");
else
{
if (mat.HasProperty(texturePropertyName)) textureShaderId = Shader.PropertyToID(texturePropertyName);
else DestroyComponentAndLogError(gameObject.name + "'s Material doesn't have a " + texturePropertyName + " property");
}
}
public void Update()
{
//Update currOffset and update shader property
currOffset.x += offsetSpeed.x * Time.deltaTime;
currOffset.y += offsetSpeed.y * Time.deltaTime;
mat.SetTextureOffset(textureShaderId, currOffset);
}
private void DestroyComponentAndLogError(string logError)
{
Debug.LogError(logError);
Destroy(this);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f3804424ee2f162418d9294faf7ba055
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,62 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace AllIn1SpriteShader
{
public class AllIn1ScrollProperty : MonoBehaviour
{
[SerializeField] private string numericPropertyName = "_RotateUvAmount";
[SerializeField] private float scrollSpeed = 0f;
[Space, SerializeField] private bool applyModulo = false;
[SerializeField] private float modulo = 1f;
[Space, SerializeField, Header("If missing will search object Sprite Renderer or UI Image")]
private Material mat;
private int propertyShaderID;
private float currValue;
public void Start()
{
//Get material if missing
if (mat == null)
{
SpriteRenderer sr = GetComponent<SpriteRenderer>();
if (sr != null) mat = sr.material;
else
{
Image i = GetComponent<Image>();
if (i != null) mat = i.material;
}
}
//Show error message if material or numericPropertyName property error
//Otherwise cache shader property ID
if (mat == null) DestroyComponentAndLogError(gameObject.name + " has no valid Material, deleting All1TextureOffsetOverTIme component");
else
{
if (mat.HasProperty(numericPropertyName)) propertyShaderID = Shader.PropertyToID(numericPropertyName);
else DestroyComponentAndLogError(gameObject.name + "'s Material doesn't have a " + numericPropertyName + " property");
currValue = mat.GetFloat(propertyShaderID);
}
}
private void Update()
{
//Update currOffset and update shader property
currValue += scrollSpeed * Time.deltaTime;
if (applyModulo) currValue %= modulo;
mat.SetFloat(propertyShaderID, currValue);
}
private void DestroyComponentAndLogError(string logError)
{
Debug.LogError(logError);
Destroy(this);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 384dba07353e1f242b467b6857a1e3d4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,49 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace AllIn1SpriteShader
{
public class Demo2AutoScroll : MonoBehaviour
{
private Transform[] children;
public float totalTime;
public GameObject sceneDescription = null;
void Start()
{
sceneDescription.SetActive(false);
Camera.main.fieldOfView = 60f;
children = GetComponentsInChildren<Transform>();
for (int i = 0; i < children.Length; i++)
{
if (children[i].gameObject != gameObject)
{
children[i].gameObject.SetActive(false);
children[i].localPosition = Vector3.zero;
}
}
totalTime = totalTime / (float)children.Length;
StartCoroutine(ScrollElements());
}
IEnumerator ScrollElements()
{
int i = 0;
while (true)
{
if (children[i].gameObject == gameObject)
{
i = (i + 1) % children.Length;
continue;
}
children[i].gameObject.SetActive(true);
yield return new WaitForSeconds(totalTime);
children[i].gameObject.SetActive(false);
i = (i + 1) % children.Length;
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cc188be2d64e8d041aed6f375d92c463
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,36 @@
using System.Collections;
using UnityEngine;
namespace AllIn1SpriteShader
{
public class DemoCamera : MonoBehaviour
{
[SerializeField] private Transform targetedItem = null;
[SerializeField] private All1ShaderDemoController demoController = null;
[SerializeField] private float speed = 0;
private Vector3 offset;
private Vector3 target;
private bool canUpdate = false;
void Awake()
{
offset = transform.position - targetedItem.position;
StartCoroutine(SetCamAfterStart());
}
private void Update()
{
if (!canUpdate) return;
target.y = demoController.GetCurrExpositor() * demoController.expositorDistance;
transform.position = Vector3.Lerp(transform.position, target, speed * Time.deltaTime);
}
IEnumerator SetCamAfterStart()
{
yield return null;
transform.position = targetedItem.position + offset;
target = transform.position;
canUpdate = true;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: fcb2e887baa071545bad04c7b0e87cce
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,54 @@
using UnityEngine;
namespace AllIn1SpriteShader
{
public class DemoCircleExpositor : MonoBehaviour
{
[SerializeField] private float radius = 40f;
[SerializeField] private float rotateSpeed = 10f;
private float zOffset = 0f;
private Transform[] items;
private int count = 0;
private int currentTarget = 0;
private float offsetRotation, iniY;
private Quaternion dummyRotation;
void Start()
{
dummyRotation = transform.rotation;
iniY = transform.position.y;
items = new Transform[transform.childCount];
foreach (Transform child in transform)
{
items[count] = child;
count++;
}
offsetRotation = 360.0f / count;
for (int i = 0; i < count; i++)
{
float angle = i * Mathf.PI * 2f / count;
Vector3 newPos = new Vector3(Mathf.Sin(angle) * radius, iniY, -Mathf.Cos(angle) * radius);
items[i].position = newPos;
}
zOffset = radius - 40f;
transform.position = new Vector3(transform.position.x, transform.position.y, zOffset);
}
private void Update()
{
transform.rotation = Quaternion.Slerp(transform.rotation, dummyRotation, rotateSpeed * Time.deltaTime);
}
public void ChangeTarget(int offset)
{
currentTarget += offset;
if (currentTarget > items.Length - 1) currentTarget = 0;
else if (currentTarget < 0) currentTarget = items.Length - 1;
dummyRotation *= Quaternion.Euler(Vector3.up * (offset * offsetRotation));
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6972382efdee4c642812251660f0c4bb
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,14 @@
using UnityEngine;
namespace AllIn1SpriteShader
{
public class DemoItem : MonoBehaviour
{
static readonly Vector3 lookAtZ = new Vector3(0, 0, 1);
void Update()
{
transform.LookAt(transform.position + lookAtZ);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 98b644315d7a92842b89e04f55c48e02
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,39 @@
using UnityEngine;
namespace AllIn1SpriteShader
{
public class DemoRandomColorSwap : MonoBehaviour
{
private Material mat;
private readonly int colorSwapRed = Shader.PropertyToID("_ColorSwapRed");
private readonly int colorSwapGreen = Shader.PropertyToID("_ColorSwapGreen");
private readonly int colorSwapBlue = Shader.PropertyToID("_ColorSwapBlue");
void Start()
{
SpriteRenderer sr = GetComponent<SpriteRenderer>();
if (sr != null)
{
mat = GetComponent<Renderer>().material;
if (mat != null) InvokeRepeating(nameof(NewColor), 0.0f, 0.6f);
else
{
Debug.LogError("No material found");
Destroy(this);
}
}
}
private void NewColor()
{
mat.SetColor(colorSwapRed, GenerateColor());
mat.SetColor(colorSwapGreen, GenerateColor());
mat.SetColor(colorSwapBlue, GenerateColor());
}
private Color GenerateColor()
{
return new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f), 1f);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4ef3964599ee48c4ea5a4ecf012ed949
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,24 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace AllIn1SpriteShader
{
public class DemoRepositionExpositor : MonoBehaviour
{
[SerializeField] private float paddingX = 10f;
[ContextMenu("RepositionExpositor")]
private void RepositionExpositor()
{
int i = 0;
Vector3 tempLocalPos = Vector3.zero;
foreach (Transform child in transform)
{
tempLocalPos.x = i * paddingX;
child.localPosition = tempLocalPos;
i++;
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 681095680e77fad40a6dd907b8ba358b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: