uv
This commit is contained in:
@@ -49,10 +49,10 @@ MonoBehaviour:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 26252
|
||||
m_assetChangeTS: 1752560195
|
||||
m_fileInfoReadTS: 1752560195
|
||||
m_fileWriteTS: 1752560195
|
||||
m_cachefileWriteTS: 1752560195
|
||||
m_assetChangeTS: 1752569932
|
||||
m_fileInfoReadTS: 1752569934
|
||||
m_fileWriteTS: 1752569932
|
||||
m_cachefileWriteTS: 1752569932
|
||||
refreshStamp: 3
|
||||
UseGUIDsList:
|
||||
- guid: fc6c02e75b66345c29e8a25e2e2bda9c
|
||||
@@ -11523,10 +11523,10 @@ MonoBehaviour:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 3645
|
||||
m_assetChangeTS: 1752557937
|
||||
m_fileInfoReadTS: 1752558114
|
||||
m_fileWriteTS: 1752557936
|
||||
m_cachefileWriteTS: 1752557936
|
||||
m_assetChangeTS: 1752560200
|
||||
m_fileInfoReadTS: 1752560288
|
||||
m_fileWriteTS: 1752560200
|
||||
m_cachefileWriteTS: 1752560200
|
||||
refreshStamp: 3
|
||||
UseGUIDsList:
|
||||
- guid: bf2edee5c58d82540a51f03df9d42094
|
||||
@@ -14644,15 +14644,15 @@ MonoBehaviour:
|
||||
UseGUIDsList: []
|
||||
- guid: 01fba1b4480fc4988be3f80598f285c1
|
||||
type: 2
|
||||
m_fileInfoHash: 21264.cs
|
||||
m_fileInfoHash: 23880.cs
|
||||
m_assetbundle:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 21264
|
||||
m_assetChangeTS: 1752284102
|
||||
m_fileInfoReadTS: 1752284125
|
||||
m_fileWriteTS: 1752129965
|
||||
m_cachefileWriteTS: 1752129965
|
||||
m_fileSize: 23880
|
||||
m_assetChangeTS: 1752569790
|
||||
m_fileInfoReadTS: 1752569798
|
||||
m_fileWriteTS: 1752569788
|
||||
m_cachefileWriteTS: 1752569788
|
||||
refreshStamp: 3
|
||||
UseGUIDsList: []
|
||||
- guid: 01fb2e405de427a47bbd366ee75d1772
|
||||
@@ -27361,10 +27361,10 @@ MonoBehaviour:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 3642
|
||||
m_assetChangeTS: 1752557937
|
||||
m_fileInfoReadTS: 1752558114
|
||||
m_fileWriteTS: 1752557936
|
||||
m_cachefileWriteTS: 1752557936
|
||||
m_assetChangeTS: 1752560200
|
||||
m_fileInfoReadTS: 1752560288
|
||||
m_fileWriteTS: 1752560200
|
||||
m_cachefileWriteTS: 1752560200
|
||||
refreshStamp: 3
|
||||
UseGUIDsList:
|
||||
- guid: bf2edee5c58d82540a51f03df9d42094
|
||||
@@ -48066,15 +48066,15 @@ MonoBehaviour:
|
||||
ids: 5b000000
|
||||
- guid: 8372da2ad7a105d4aa3904e8b3fdfd71
|
||||
type: 2
|
||||
m_fileInfoHash: 4957.cs
|
||||
m_fileInfoHash: 4879.cs
|
||||
m_assetbundle:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 4957
|
||||
m_assetChangeTS: 1752284102
|
||||
m_fileInfoReadTS: 1752284124
|
||||
m_fileWriteTS: 1745032595
|
||||
m_cachefileWriteTS: 1745032595
|
||||
m_fileSize: 4879
|
||||
m_assetChangeTS: 1752569448
|
||||
m_fileInfoReadTS: 1752569456
|
||||
m_fileWriteTS: 1752569447
|
||||
m_cachefileWriteTS: 1752569447
|
||||
refreshStamp: 3
|
||||
UseGUIDsList: []
|
||||
- guid: 83d267126bcce4c9495361e0502fd04c
|
||||
@@ -84945,15 +84945,15 @@ MonoBehaviour:
|
||||
UseGUIDsList: []
|
||||
- guid: 266f4a39c512c46eea7e44336e4fc600
|
||||
type: 5
|
||||
m_fileInfoHash: 6087.asset
|
||||
m_fileInfoHash: 6191.asset
|
||||
m_assetbundle:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 6087
|
||||
m_assetChangeTS: 1752138525
|
||||
m_fileInfoReadTS: 1752138526
|
||||
m_fileWriteTS: 1752138524
|
||||
m_cachefileWriteTS: 1752138524
|
||||
m_fileSize: 6191
|
||||
m_assetChangeTS: 1752569636
|
||||
m_fileInfoReadTS: 1752569637
|
||||
m_fileWriteTS: 1752569636
|
||||
m_cachefileWriteTS: 1752569636
|
||||
refreshStamp: 3
|
||||
UseGUIDsList:
|
||||
- guid: 9bfe18cabd8814ad0b27f5969180c1d2
|
||||
@@ -85018,6 +85018,8 @@ MonoBehaviour:
|
||||
ids:
|
||||
- guid: 94ed5dfb5df8c408faa267d2915aaeeb
|
||||
ids:
|
||||
- guid: a6abc70beebfa934a9c5ef5b2b8ec115
|
||||
ids:
|
||||
- guid: 9e72408c17dfe4740b0e9060d6b3fafa
|
||||
ids:
|
||||
- guid: 4b0098f7176cb49d6ac968b7d3ca4c51
|
||||
@@ -157806,10 +157808,10 @@ MonoBehaviour:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 3649
|
||||
m_assetChangeTS: 1752557937
|
||||
m_fileInfoReadTS: 1752558113
|
||||
m_fileWriteTS: 1752557936
|
||||
m_cachefileWriteTS: 1752557936
|
||||
m_assetChangeTS: 1752560200
|
||||
m_fileInfoReadTS: 1752560288
|
||||
m_fileWriteTS: 1752560200
|
||||
m_cachefileWriteTS: 1752560200
|
||||
refreshStamp: 3
|
||||
UseGUIDsList:
|
||||
- guid: bf2edee5c58d82540a51f03df9d42094
|
||||
@@ -159518,15 +159520,15 @@ MonoBehaviour:
|
||||
UseGUIDsList: []
|
||||
- guid: 9bfe18cabd8814ad0b27f5969180c1d2
|
||||
type: 2
|
||||
m_fileInfoHash: 3128.cs
|
||||
m_fileInfoHash: 3174.cs
|
||||
m_assetbundle:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 3128
|
||||
m_assetChangeTS: 1752284102
|
||||
m_fileInfoReadTS: 1752284123
|
||||
m_fileWriteTS: 1752136051
|
||||
m_cachefileWriteTS: 1752136051
|
||||
m_fileSize: 3174
|
||||
m_assetChangeTS: 1752569610
|
||||
m_fileInfoReadTS: 1752569618
|
||||
m_fileWriteTS: 1752569586
|
||||
m_cachefileWriteTS: 1752569586
|
||||
refreshStamp: 3
|
||||
UseGUIDsList: []
|
||||
- guid: 9b3f77b5965944b8ba5c1beefa1eb533
|
||||
@@ -185453,15 +185455,15 @@ MonoBehaviour:
|
||||
UseGUIDsList: []
|
||||
- guid: 8d2b6af5deaa046ff89ed3c74bb2ffdc
|
||||
type: 2
|
||||
m_fileInfoHash: 20098.cs
|
||||
m_fileInfoHash: 20309.cs
|
||||
m_assetbundle:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 20098
|
||||
m_assetChangeTS: 1752284102
|
||||
m_fileInfoReadTS: 1752284122
|
||||
m_fileWriteTS: 1752048862
|
||||
m_cachefileWriteTS: 1752048862
|
||||
m_fileSize: 20309
|
||||
m_assetChangeTS: 1752569176
|
||||
m_fileInfoReadTS: 1752569222
|
||||
m_fileWriteTS: 1752569172
|
||||
m_cachefileWriteTS: 1752569172
|
||||
refreshStamp: 3
|
||||
UseGUIDsList: []
|
||||
- guid: 8d4bc6bfa28760b29f13174d6b6ea710
|
||||
@@ -193530,15 +193532,15 @@ MonoBehaviour:
|
||||
ids: 73000000
|
||||
- guid: 2e498d1c8094910479dc3e1b768306a4
|
||||
type: 5
|
||||
m_fileInfoHash: 9628.asset
|
||||
m_fileInfoHash: 566686.asset
|
||||
m_assetbundle:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 9628
|
||||
m_assetChangeTS: 1752557937
|
||||
m_fileInfoReadTS: 1752558113
|
||||
m_fileWriteTS: 1752557936
|
||||
m_cachefileWriteTS: 1752557936
|
||||
m_fileSize: 566686
|
||||
m_assetChangeTS: 1752560990
|
||||
m_fileInfoReadTS: 1752560991
|
||||
m_fileWriteTS: 1752560990
|
||||
m_cachefileWriteTS: 1752560990
|
||||
refreshStamp: 3
|
||||
UseGUIDsList:
|
||||
- guid: fe393ace9b354375a9cb14cdbbc28be4
|
||||
@@ -205666,15 +205668,15 @@ MonoBehaviour:
|
||||
UseGUIDsList: []
|
||||
- guid: 1f09909b044c24c8cbd5c5375403bce9
|
||||
type: 2
|
||||
m_fileInfoHash: 11887.cs
|
||||
m_fileInfoHash: 12606.cs
|
||||
m_assetbundle:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 11887
|
||||
m_assetChangeTS: 1752284102
|
||||
m_fileInfoReadTS: 1752284122
|
||||
m_fileWriteTS: 1752136050
|
||||
m_cachefileWriteTS: 1752136050
|
||||
m_fileSize: 12606
|
||||
m_assetChangeTS: 1752569610
|
||||
m_fileInfoReadTS: 1752569618
|
||||
m_fileWriteTS: 1752569602
|
||||
m_cachefileWriteTS: 1752569602
|
||||
refreshStamp: 3
|
||||
UseGUIDsList: []
|
||||
- guid: 1f39d038dce44a7428bbe3628ec512d0
|
||||
@@ -219451,15 +219453,15 @@ MonoBehaviour:
|
||||
UseGUIDsList: []
|
||||
- guid: 7c10da0d74d78364bac94506d77290bf
|
||||
type: 5
|
||||
m_fileInfoHash: 2814.mat
|
||||
m_fileInfoHash: 2835.mat
|
||||
m_assetbundle:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 2814
|
||||
m_assetChangeTS: 1752557937
|
||||
m_fileInfoReadTS: 1752558113
|
||||
m_fileWriteTS: 1752557936
|
||||
m_cachefileWriteTS: 1752557936
|
||||
m_fileSize: 2835
|
||||
m_assetChangeTS: 1752569932
|
||||
m_fileInfoReadTS: 1752569934
|
||||
m_fileWriteTS: 1752569932
|
||||
m_cachefileWriteTS: 1752569932
|
||||
refreshStamp: 3
|
||||
UseGUIDsList:
|
||||
- guid: 06e8da9b2b26f09459e8a93e84b2e0c9
|
||||
@@ -221181,6 +221183,48 @@ MonoBehaviour:
|
||||
ids: 1c000000
|
||||
- guid: d0353a89b1f911e48b9e16bdc9f2e058
|
||||
ids: 73000000
|
||||
- guid: b0fa96ed23c470e439b349bc8e29ae6d
|
||||
type: 2
|
||||
m_fileInfoHash: 4005.cs
|
||||
m_assetbundle:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 4005
|
||||
m_assetChangeTS: 1752569448
|
||||
m_fileInfoReadTS: 1752569456
|
||||
m_fileWriteTS: 1752569445
|
||||
m_cachefileWriteTS: 1752569445
|
||||
refreshStamp: 3
|
||||
UseGUIDsList: []
|
||||
- guid: a6abc70beebfa934a9c5ef5b2b8ec115
|
||||
type: 5
|
||||
m_fileInfoHash: 36772.prefab
|
||||
m_assetbundle:
|
||||
m_addressable:
|
||||
m_atlas:
|
||||
m_fileSize: 36772
|
||||
m_assetChangeTS: 1752569527
|
||||
m_fileInfoReadTS: 1752569528
|
||||
m_fileWriteTS: 1752569527
|
||||
m_cachefileWriteTS: 1752569527
|
||||
refreshStamp: 3
|
||||
UseGUIDsList:
|
||||
- guid: fe87c0e1cc204ed48ad3b37840f39efc
|
||||
ids: 73000000
|
||||
- guid: 0000000000000000f000000000000000
|
||||
ids: 00000000
|
||||
- guid: 2da0c512f12947e489f739169773d7ca
|
||||
ids: 73000000
|
||||
- guid: 8f586378b4e144a9851e7b34d9b748ee
|
||||
ids: 7200000015000000
|
||||
- guid: f4688fdb7df04437aeb418b961361dc5
|
||||
ids: 73000000
|
||||
- guid: 306cc8c2b49d7114eaa3623786fc2126
|
||||
ids: 73000000
|
||||
- guid: 3312d7739989d2b4e91e6319e9a96d76
|
||||
ids: 73000000
|
||||
- guid: b0fa96ed23c470e439b349bc8e29ae6d
|
||||
ids: 73000000
|
||||
setting:
|
||||
alternateColor: 1
|
||||
excludeTypes: 0
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -77,6 +77,8 @@ MonoBehaviour:
|
||||
type: 3}
|
||||
inputField: {fileID: 2642348292953561022, guid: 94ed5dfb5df8c408faa267d2915aaeeb,
|
||||
type: 3}
|
||||
vector2InputField: {fileID: 8936320662031972394, guid: a6abc70beebfa934a9c5ef5b2b8ec115,
|
||||
type: 3}
|
||||
vector3InputField: {fileID: 8936320662031972394, guid: 9e72408c17dfe4740b0e9060d6b3fafa,
|
||||
type: 3}
|
||||
parameterText: {fileID: 2642348292953561022, guid: 4b0098f7176cb49d6ac968b7d3ca4c51,
|
||||
|
||||
1248
Assets/Prefabs/DynamicUI/Elements/Vector2InputField.prefab
Normal file
1248
Assets/Prefabs/DynamicUI/Elements/Vector2InputField.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a6abc70beebfa934a9c5ef5b2b8ec115
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,106 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Ichni.RhythmGame;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
namespace Ichni.Editor
|
||||
{
|
||||
public class DynamicUIVector2InputField : DynamicUIElement, IHaveAutoUpdate
|
||||
{
|
||||
public TMP_InputField inputFieldX;
|
||||
public TMP_InputField inputFieldY;
|
||||
public bool isAutoUpdate { get; set; }
|
||||
public bool isReceiving { get; set; }
|
||||
|
||||
public override void Initialize(IBaseElement baseElement, string title, string parameterName)
|
||||
{
|
||||
base.Initialize(baseElement, title, parameterName);
|
||||
if (parameterName != string.Empty)
|
||||
{
|
||||
ApplyContent();
|
||||
|
||||
inputFieldX.onEndEdit.AddListener(_ => ApplyParameters());
|
||||
inputFieldY.onEndEdit.AddListener(_ => ApplyParameters());
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
(this as IHaveAutoUpdate).UpdateContent();
|
||||
|
||||
// 检测鼠标是否在 inputFieldX、inputFieldY 或 inputFieldZ 上
|
||||
var selectedGameObject = EventSystem.current.currentSelectedGameObject;
|
||||
bool[] isMouseOverText = new[]
|
||||
{
|
||||
selectedGameObject==inputFieldX.gameObject,
|
||||
selectedGameObject==inputFieldY.gameObject,
|
||||
};
|
||||
|
||||
if (Mouse.current.scroll.ReadValue().y != 0) // 检测鼠标滚轮
|
||||
{
|
||||
float scrollDelta = Mouse.current.scroll.ReadValue().y > 0 ? 0.1f : -0.1f; // 根据滚轮方向设置增量
|
||||
|
||||
if (isMouseOverText[0]) // 鼠标在 inputFieldX 上
|
||||
{
|
||||
float currentValue = float.Parse(inputFieldX.text);
|
||||
inputFieldX.text = (currentValue + scrollDelta).ToString();
|
||||
ApplyParameters();
|
||||
}
|
||||
else if (isMouseOverText[1]) // 鼠标在 inputFieldY 上
|
||||
{
|
||||
float currentValue = float.Parse(inputFieldY.text);
|
||||
inputFieldY.text = (currentValue + scrollDelta).ToString();
|
||||
ApplyParameters();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SetDefaultValue(Vector2 value)
|
||||
{
|
||||
inputFieldX.text = value.x.ToString();
|
||||
inputFieldY.text = value.y.ToString();
|
||||
}
|
||||
|
||||
public Vector2 GetValue()
|
||||
{
|
||||
return new Vector2(float.Parse(inputFieldX.text), float.Parse(inputFieldY.text));
|
||||
}
|
||||
|
||||
public void SetAutoUpdate(bool enable)
|
||||
{
|
||||
isAutoUpdate = enable;
|
||||
isReceiving = true;
|
||||
|
||||
inputFieldX.onSelect.AddListener(_ => isReceiving = false);
|
||||
inputFieldY.onSelect.AddListener(_ => isReceiving = false);
|
||||
|
||||
inputFieldX.onDeselect.AddListener(_ => isReceiving = true);
|
||||
inputFieldY.onDeselect.AddListener(_ => isReceiving = true);
|
||||
}
|
||||
|
||||
public void ApplyContent()
|
||||
{
|
||||
Vector2 pos = (Vector2)connectedBaseElement.GetType().GetField(parameterName).GetValue(connectedBaseElement); //获取对应变量的值
|
||||
inputFieldX.text = pos.x.ToString();
|
||||
inputFieldY.text = pos.y.ToString();
|
||||
}
|
||||
|
||||
private void ApplyParameters()
|
||||
{
|
||||
Vector2 newValue = new Vector2(float.Parse(inputFieldX.text), float.Parse(inputFieldY.text));
|
||||
connectedBaseElement.GetType().GetField(parameterName).SetValue(connectedBaseElement, newValue);
|
||||
connectedBaseElement.Refresh();
|
||||
}
|
||||
|
||||
public override DynamicUIElement AddListenerFunction(UnityAction action)
|
||||
{
|
||||
inputFieldX.onEndEdit.AddListener(_ => action());
|
||||
inputFieldY.onEndEdit.AddListener(_ => action());
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b0fa96ed23c470e439b349bc8e29ae6d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -8,8 +8,6 @@ using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UIElements.Experimental;
|
||||
|
||||
namespace Ichni.Editor
|
||||
{
|
||||
|
||||
@@ -130,6 +130,18 @@ namespace Ichni.Editor
|
||||
subcontainer.dynamicUIElements.Add(vector3InputField);
|
||||
return vector3InputField;
|
||||
}
|
||||
|
||||
public DynamicUIVector2InputField GenerateVector2InputField(IBaseElement baseElement,
|
||||
DynamicUISubcontainer subcontainer, string title, string parameterName, bool isAutoUpdate = false)
|
||||
{
|
||||
DynamicUIVector2InputField vector2InputField =
|
||||
Object.Instantiate(EditorManager.instance.basePrefabs.vector2InputField, subcontainer.rect)
|
||||
.GetComponent<DynamicUIVector2InputField>();
|
||||
vector2InputField.Initialize(baseElement, title, parameterName);
|
||||
vector2InputField.SetAutoUpdate(isAutoUpdate);
|
||||
subcontainer.dynamicUIElements.Add(vector2InputField);
|
||||
return vector2InputField;
|
||||
}
|
||||
|
||||
public DynamicUIBaseColorPicker GenerateBaseColorPicker(IBaseElement baseElement, DynamicUISubcontainer subcontainer,
|
||||
string title, string parameterName)
|
||||
|
||||
@@ -115,25 +115,29 @@ namespace Ichni.RhythmGame
|
||||
var trackRendererAutoOrientButton =
|
||||
inspector.GenerateButton(this, trackRendererSubcontainer, "Track Renderer Auto Orient", () =>
|
||||
{
|
||||
trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(this, false, 0, true);
|
||||
trackRendererSubmodule =
|
||||
new TrackRendererSubmoduleAutoOrient(this, false, 0, true, Vector2.one, Vector2.zero);
|
||||
inspectorMain.SetInspector(this);
|
||||
});
|
||||
var trackRendererPathGeneratorButton =
|
||||
inspector.GenerateButton(this, trackRendererSubcontainer, "Track Renderer Path Generator", () =>
|
||||
{
|
||||
trackRendererSubmodule = new TrackRendererSubmodulePathGenerator(this, false, 0, true);
|
||||
trackRendererSubmodule =
|
||||
new TrackRendererSubmodulePathGenerator(this, false, 0, true, Vector2.one, Vector2.zero);
|
||||
inspectorMain.SetInspector(this);
|
||||
});
|
||||
var trackRenderTubeGeneratorButton =
|
||||
inspector.GenerateButton(this, trackRendererSubcontainer, "Track Renderer Tube Generator", () =>
|
||||
{
|
||||
trackRendererSubmodule = new TrackRendererSubmoduleTubeGenerator(this, false, 0, true, 4);
|
||||
trackRendererSubmodule =
|
||||
new TrackRendererSubmoduleTubeGenerator(this, false, 0, true, 4, Vector2.one, Vector2.zero);
|
||||
inspectorMain.SetInspector(this);
|
||||
});
|
||||
var trackRendererSurfaceButton =
|
||||
inspector.GenerateButton(this, trackRendererSubcontainer, "Track Renderer Surface", () =>
|
||||
{
|
||||
trackRendererSubmodule = new TrackRendererSubmoduleSurface(this, false, 0, true);
|
||||
trackRendererSubmodule =
|
||||
new TrackRendererSubmoduleSurface(this, false, 0, true, Vector2.one, Vector2.zero);
|
||||
inspectorMain.SetInspector(this);
|
||||
});
|
||||
|
||||
|
||||
@@ -24,15 +24,20 @@ namespace Ichni.RhythmGame
|
||||
public bool enableEmission;
|
||||
public float emissionIntensity;
|
||||
public bool zWrite;
|
||||
public Vector2 uvScale;
|
||||
public Vector2 uvOffset;
|
||||
|
||||
public TrackRendererSubmodule(Track track, bool enableEmission, float emissionIntensity, bool zWrite) : base(track)
|
||||
public TrackRendererSubmodule(Track track, bool enableEmission, float emissionIntensity, bool zWrite,
|
||||
Vector2 uvScale, Vector2 uvOffset) : base(track)
|
||||
{
|
||||
this.enableEmission = enableEmission;
|
||||
this.emissionIntensity = emissionIntensity;
|
||||
this.materialThemeBundleName = String.Empty;
|
||||
this.materialName = String.Empty;
|
||||
this.zWrite = zWrite;
|
||||
|
||||
this.uvScale = uvScale;
|
||||
this.uvOffset = uvOffset;
|
||||
|
||||
if (!HaveSameSubmodule)
|
||||
{
|
||||
this.track.trackRendererSubmodule = this;
|
||||
@@ -58,6 +63,7 @@ namespace Ichni.RhythmGame
|
||||
SetEnableZWrite();
|
||||
SetEnableEmission();
|
||||
SetEmissionIntensity();
|
||||
SetUV();
|
||||
|
||||
if (track.trackTimeSubmodule is TrackTimeSubmoduleMovable)
|
||||
{
|
||||
@@ -92,9 +98,7 @@ namespace Ichni.RhythmGame
|
||||
|
||||
var container = inspector.GenerateContainer("Track Renderer " + submoduleName[submoduleNameIndex]);
|
||||
var zWriteSettings = container.GenerateSubcontainer(3);
|
||||
|
||||
|
||||
|
||||
|
||||
var zWriteToggle =
|
||||
inspector.GenerateToggle(this, zWriteSettings, "Enable ZWrite", nameof(zWrite))
|
||||
.AddListenerFunction(SetEnableZWrite);
|
||||
@@ -105,6 +109,14 @@ namespace Ichni.RhythmGame
|
||||
var emissionIntensityInputField =
|
||||
inspector.GenerateInputField(this, emissionSettings, "Emission Intensity", nameof(emissionIntensity))
|
||||
.AddListenerFunction(SetEmissionIntensity);
|
||||
|
||||
var uvSettings = container.GenerateSubcontainer(1);
|
||||
var uvScaleInputField =
|
||||
inspector.GenerateVector2InputField(this, uvSettings, "UV Scale", nameof(uvScale))
|
||||
.AddListenerFunction(SetUV);
|
||||
var uvOffsetInputField =
|
||||
inspector.GenerateVector2InputField(this, uvSettings, "UV Offset", nameof(uvOffset))
|
||||
.AddListenerFunction(SetUV);
|
||||
|
||||
var materialSettings = container.GenerateSubcontainer(3);
|
||||
var themeBundleDropdown = inspector
|
||||
@@ -155,6 +167,12 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
meshRenderer.material.SetColor("_EmissionColor", Color.white * Mathf.Pow(2, emissionIntensity));
|
||||
}
|
||||
|
||||
protected void SetUV()
|
||||
{
|
||||
meshGenerator.uvScale = uvScale;
|
||||
meshGenerator.uvOffset = uvOffset;
|
||||
}
|
||||
}
|
||||
|
||||
#region AutoOrient
|
||||
@@ -163,8 +181,9 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
public SplineRenderer splineRenderer;
|
||||
|
||||
public TrackRendererSubmoduleAutoOrient(Track track, bool enableEmission, float emissionIntensity, bool zWrite, Material material = null) :
|
||||
base(track, enableEmission, emissionIntensity, zWrite)
|
||||
public TrackRendererSubmoduleAutoOrient(Track track, bool enableEmission, float emissionIntensity, bool zWrite,
|
||||
Vector2 uvScale, Vector2 uvOffset, Material material = null) :
|
||||
base(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset)
|
||||
{
|
||||
this.splineRenderer = track.AddComponent<SplineRenderer>();
|
||||
this.meshRenderer = splineRenderer.GetComponent<MeshRenderer>();
|
||||
@@ -197,6 +216,8 @@ namespace Ichni.RhythmGame
|
||||
public bool enableEmission;
|
||||
public float emissionIntensity;
|
||||
public bool zWrite; // 新增
|
||||
public Vector2 uvScale = Vector2.one;
|
||||
public Vector2 uvOffset = Vector2.zero;
|
||||
|
||||
public TrackRendererSubmoduleAutoOrient_BM()
|
||||
{
|
||||
@@ -211,13 +232,16 @@ namespace Ichni.RhythmGame
|
||||
enableEmission = trackRendererSubmodule.enableEmission;
|
||||
emissionIntensity = trackRendererSubmodule.emissionIntensity;
|
||||
zWrite = trackRendererSubmodule.zWrite; // 新增
|
||||
uvScale = trackRendererSubmodule.uvScale;
|
||||
uvOffset = trackRendererSubmodule.uvOffset;
|
||||
}
|
||||
|
||||
public override void ExecuteBM()
|
||||
{
|
||||
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
|
||||
Track track = attachedElement as Track;
|
||||
track.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity, zWrite);
|
||||
track.trackRendererSubmodule =
|
||||
new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
|
||||
if (materialName.Trim() != String.Empty)
|
||||
{
|
||||
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
||||
@@ -227,7 +251,8 @@ namespace Ichni.RhythmGame
|
||||
public override void DuplicateBM(GameElement attached)
|
||||
{
|
||||
Track track = attached as Track;
|
||||
track.trackRendererSubmodule = new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity, zWrite);
|
||||
track.trackRendererSubmodule =
|
||||
new TrackRendererSubmoduleAutoOrient(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
|
||||
if (materialName.Trim() != String.Empty)
|
||||
{
|
||||
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
||||
@@ -244,8 +269,9 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
public PathGenerator pathGenerator;
|
||||
|
||||
public TrackRendererSubmodulePathGenerator(Track track, bool enableEmission, float emissionIntensity, bool zWrite, Material material = null) :
|
||||
base(track, enableEmission, emissionIntensity, zWrite)
|
||||
public TrackRendererSubmodulePathGenerator(Track track, bool enableEmission, float emissionIntensity, bool zWrite,
|
||||
Vector2 uvScale, Vector2 uvOffset, Material material = null) :
|
||||
base(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset)
|
||||
{
|
||||
this.pathGenerator = track.AddComponent<PathGenerator>();
|
||||
this.meshRenderer = pathGenerator.GetComponent<MeshRenderer>();
|
||||
@@ -278,6 +304,8 @@ namespace Ichni.RhythmGame
|
||||
public bool enableEmission;
|
||||
public float emissionIntensity;
|
||||
public bool zWrite; // 新增
|
||||
public Vector2 uvScale = Vector2.one;
|
||||
public Vector2 uvOffset = Vector2.zero;
|
||||
|
||||
public TrackRendererSubmodulePathGenerator_BM()
|
||||
{
|
||||
@@ -292,13 +320,16 @@ namespace Ichni.RhythmGame
|
||||
enableEmission = trackRendererSubmodule.enableEmission;
|
||||
emissionIntensity = trackRendererSubmodule.emissionIntensity;
|
||||
zWrite = trackRendererSubmodule.zWrite; // 新增
|
||||
uvScale = trackRendererSubmodule.uvScale;
|
||||
uvOffset = trackRendererSubmodule.uvOffset;
|
||||
}
|
||||
|
||||
public override void ExecuteBM()
|
||||
{
|
||||
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
|
||||
Track track = attachedElement as Track;
|
||||
track.trackRendererSubmodule = new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity, zWrite);
|
||||
track.trackRendererSubmodule =
|
||||
new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
|
||||
if (materialName.Trim() != String.Empty)
|
||||
{
|
||||
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
||||
@@ -308,7 +339,8 @@ namespace Ichni.RhythmGame
|
||||
public override void DuplicateBM(GameElement attached)
|
||||
{
|
||||
Track track = attached as Track;
|
||||
track.trackRendererSubmodule = new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity, zWrite);
|
||||
track.trackRendererSubmodule =
|
||||
new TrackRendererSubmodulePathGenerator(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
|
||||
if (materialName.Trim() != String.Empty)
|
||||
{
|
||||
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
||||
@@ -327,8 +359,8 @@ namespace Ichni.RhythmGame
|
||||
public int sideCount;
|
||||
|
||||
public TrackRendererSubmoduleTubeGenerator(Track track, bool enableEmission, float emissionIntensity, bool zWrite,
|
||||
int sideCount, Material material = null) :
|
||||
base(track, enableEmission, emissionIntensity, zWrite)
|
||||
int sideCount, Vector2 uvScale, Vector2 uvOffset, Material material = null) :
|
||||
base(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset)
|
||||
{
|
||||
this.sideCount = sideCount;
|
||||
|
||||
@@ -379,7 +411,9 @@ namespace Ichni.RhythmGame
|
||||
public bool enableEmission;
|
||||
public float emissionIntensity;
|
||||
public bool zWrite; // 新增
|
||||
public int sideCount;
|
||||
public int sideCount;
|
||||
public Vector2 uvScale = Vector2.one;
|
||||
public Vector2 uvOffset = Vector2.zero;
|
||||
|
||||
public TrackRendererSubmoduleTubeGenerator_BM()
|
||||
{
|
||||
@@ -395,13 +429,16 @@ namespace Ichni.RhythmGame
|
||||
emissionIntensity = trackRendererSubmodule.emissionIntensity;
|
||||
zWrite = trackRendererSubmodule.zWrite; // 新增
|
||||
sideCount = trackRendererSubmodule.sideCount;
|
||||
uvScale = trackRendererSubmodule.uvScale;
|
||||
uvOffset = trackRendererSubmodule.uvOffset;
|
||||
}
|
||||
|
||||
public override void ExecuteBM()
|
||||
{
|
||||
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
|
||||
Track track = attachedElement as Track;
|
||||
track.trackRendererSubmodule = new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, zWrite, sideCount);
|
||||
track.trackRendererSubmodule =
|
||||
new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, zWrite, sideCount, uvScale, uvOffset);
|
||||
if (materialName.Trim() != String.Empty)
|
||||
{
|
||||
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
||||
@@ -411,7 +448,8 @@ namespace Ichni.RhythmGame
|
||||
public override void DuplicateBM(GameElement attached)
|
||||
{
|
||||
Track track = attached as Track;
|
||||
track.trackRendererSubmodule = new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, zWrite, sideCount);
|
||||
track.trackRendererSubmodule =
|
||||
new TrackRendererSubmoduleTubeGenerator(track, enableEmission, emissionIntensity, zWrite, sideCount, uvScale, uvOffset);
|
||||
if (materialName.Trim() != String.Empty)
|
||||
{
|
||||
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
||||
@@ -428,8 +466,9 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
public SurfaceGenerator surface;
|
||||
|
||||
public TrackRendererSubmoduleSurface(Track track, bool enableEmission, float emissionIntensity, bool zWrite, Material material = null) :
|
||||
base(track, enableEmission, emissionIntensity, zWrite)
|
||||
public TrackRendererSubmoduleSurface(Track track, bool enableEmission, float emissionIntensity, bool zWrite,
|
||||
Vector2 uvScale, Vector2 uvOffset, Material material = null) :
|
||||
base(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset)
|
||||
{
|
||||
this.surface = track.AddComponent<SurfaceGenerator>();
|
||||
this.meshRenderer = surface.GetComponent<MeshRenderer>();
|
||||
@@ -462,6 +501,8 @@ namespace Ichni.RhythmGame
|
||||
public bool enableEmission;
|
||||
public float emissionIntensity;
|
||||
public bool zWrite; // 新增
|
||||
public Vector2 uvScale = Vector2.one;
|
||||
public Vector2 uvOffset = Vector2.zero;
|
||||
|
||||
public TrackRendererSubmoduleSurface_BM()
|
||||
{
|
||||
@@ -476,13 +517,16 @@ namespace Ichni.RhythmGame
|
||||
enableEmission = trackRendererSubmodule.enableEmission;
|
||||
emissionIntensity = trackRendererSubmodule.emissionIntensity;
|
||||
zWrite = trackRendererSubmodule.zWrite; // 新增
|
||||
uvScale = trackRendererSubmodule.uvScale;
|
||||
uvOffset = trackRendererSubmodule.uvOffset;
|
||||
}
|
||||
|
||||
public override void ExecuteBM()
|
||||
{
|
||||
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
|
||||
Track track = attachedElement as Track;
|
||||
track.trackRendererSubmodule = new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity, zWrite);
|
||||
track.trackRendererSubmodule =
|
||||
new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
|
||||
if (materialName.Trim() != String.Empty)
|
||||
{
|
||||
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
||||
@@ -492,7 +536,8 @@ namespace Ichni.RhythmGame
|
||||
public override void DuplicateBM(GameElement attached)
|
||||
{
|
||||
Track track = attached as Track;
|
||||
track.trackRendererSubmodule = new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity, zWrite);
|
||||
track.trackRendererSubmodule =
|
||||
new TrackRendererSubmoduleSurface(track, enableEmission, emissionIntensity, zWrite, uvScale, uvOffset);
|
||||
if (materialName.Trim() != String.Empty)
|
||||
{
|
||||
track.trackRendererSubmodule.ApplyMaterial(materialThemeBundleName, materialName);
|
||||
|
||||
@@ -48,6 +48,7 @@ namespace Ichni.RhythmGame
|
||||
[Title("DynamicUI相关-Simple")] public GameObject dynamicUIContainer;
|
||||
public GameObject dynamicUISubcontainer;
|
||||
public GameObject inputField;
|
||||
public GameObject vector2InputField;
|
||||
public GameObject vector3InputField;
|
||||
public GameObject parameterText;
|
||||
public GameObject hintText;
|
||||
|
||||
Reference in New Issue
Block a user