screen tiling added
This commit is contained in:
parent
e3d25a53e9
commit
e38d912810
|
|
@ -295,6 +295,7 @@ GameObject:
|
||||||
- component: {fileID: 1535126665250126034}
|
- component: {fileID: 1535126665250126034}
|
||||||
- component: {fileID: 1198356187242493155}
|
- component: {fileID: 1198356187242493155}
|
||||||
- component: {fileID: 647613278910435637}
|
- component: {fileID: 647613278910435637}
|
||||||
|
- component: {fileID: 2582851074058764053}
|
||||||
m_Layer: 31
|
m_Layer: 31
|
||||||
m_Name: GameView
|
m_Name: GameView
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
|
|
@ -357,6 +358,18 @@ MonoBehaviour:
|
||||||
y: 0
|
y: 0
|
||||||
width: 1
|
width: 1
|
||||||
height: 1
|
height: 1
|
||||||
|
--- !u!114 &2582851074058764053
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2464883521749415129}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d556607141c07af40b1b5ee71c28c5a6, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &2478945398383251488
|
--- !u!1 &2478945398383251488
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
||||||
|
|
@ -1024,6 +1024,27 @@ namespace HeavenStudio
|
||||||
new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "tempStart", "tintStart", "colorStart", "hueShiftStart", "satStart", "brightStart", "conStart" })
|
new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "tempStart", "tintStart", "colorStart", "hueShiftStart", "satStart", "brightStart", "conStart" })
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
new GameAction("screenTiling", "Screen Tiling")
|
||||||
|
{
|
||||||
|
resizable = true,
|
||||||
|
parameters = new()
|
||||||
|
{
|
||||||
|
new("xStart", new EntityTypes.Float(1, 100, 1), "Start Horizontal Tiles"),
|
||||||
|
new("yStart", new EntityTypes.Float(1, 100, 1), "Start Vertical Tiles"),
|
||||||
|
new("xEnd", new EntityTypes.Float(1, 100, 1), "End Horizontal Tiles"),
|
||||||
|
new("yEnd", new EntityTypes.Float(1, 100, 1), "End Vertical Tiles"),
|
||||||
|
|
||||||
|
new("xScrollStart", new EntityTypes.Float(-100, 100, 0), "Start Horizontal Scroll"),
|
||||||
|
new("yScrollStart", new EntityTypes.Float(-100, 100, 0), "Start Vertical Scroll"),
|
||||||
|
new("xScrollEnd", new EntityTypes.Float(-100, 100, 0), "End Horizontal Scroll"),
|
||||||
|
new("yScrollEnd", new EntityTypes.Float(-100, 100, 0), "End Vertical Scroll"),
|
||||||
|
|
||||||
|
new("ease", Util.EasingFunction.Ease.Linear, "Ease", "", new()
|
||||||
|
{
|
||||||
|
new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "xStart", "yStart", "xScrollStart", "yScrollStart" })
|
||||||
|
}),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
|
||||||
62
Assets/Scripts/ScreenTiling.cs
Normal file
62
Assets/Scripts/ScreenTiling.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using Jukebox;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace HeavenStudio
|
||||||
|
{
|
||||||
|
public class ScreenTiling : MonoBehaviour
|
||||||
|
{
|
||||||
|
private RawImage _image;
|
||||||
|
private RectTransform _rectTransform;
|
||||||
|
|
||||||
|
private List<RiqEntity> _events = new();
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
_image = GetComponent<RawImage>();
|
||||||
|
_rectTransform = GetComponent<RectTransform>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
GameManager.instance.onBeatChanged += OnBeatChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnBeatChanged(double beat)
|
||||||
|
{
|
||||||
|
_events = EventCaller.GetAllInGameManagerList("vfx", new string[] { "screenTiling" });
|
||||||
|
ResetUVRect();
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
foreach (var e in _events)
|
||||||
|
{
|
||||||
|
float normalized = Conductor.instance.GetPositionFromBeat(e.beat, e.length);
|
||||||
|
if (normalized < 0) break;
|
||||||
|
|
||||||
|
float clampNormal = Mathf.Clamp01(normalized);
|
||||||
|
|
||||||
|
var func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease)e["ease"]);
|
||||||
|
|
||||||
|
float newXTiles = func(e["xStart"], e["xEnd"], clampNormal);
|
||||||
|
float newYTiles = func(e["yStart"], e["yEnd"], clampNormal);
|
||||||
|
float newXScroll = func(e["xScrollStart"], e["xScrollEnd"], clampNormal);
|
||||||
|
float newYScroll = func(e["yScrollStart"], e["yScrollEnd"], clampNormal);
|
||||||
|
|
||||||
|
_image.uvRect = new Rect(newXScroll, newYScroll, newXTiles, newYTiles);
|
||||||
|
_rectTransform.localScale = new Vector3(1 / newXTiles, 1 / newYTiles);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ResetUVRect()
|
||||||
|
{
|
||||||
|
_image.uvRect = new Rect(0, 0, 1, 1);
|
||||||
|
_rectTransform.localScale = Vector3.one;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
11
Assets/Scripts/ScreenTiling.cs.meta
Normal file
11
Assets/Scripts/ScreenTiling.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d556607141c07af40b1b5ee71c28c5a6
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Loading…
Reference in a new issue