Make the group in skin container readonly.

This commit is contained in:
2023-02-24 15:25:04 +08:00
parent 3ecf3b4bfc
commit 6837d3f7ee
3 changed files with 25 additions and 23 deletions

View File

@@ -12,11 +12,11 @@ namespace Cryville.Crtr {
public Transform RootTransform { get; private set; }
public EffectInstance(EffectDefinition def) {
_def = def;
_skinContainer = new SkinContainer(_def.elements);
_skinContainer = new SkinContainer(this, _def.elements);
RootTransform = new GameObject("effect:" + GetHashCode().ToString(CultureInfo.InvariantCulture)).transform;
SkinContext = new SkinContext(RootTransform);
ChartPlayer.etor.ContextCascadeInsertBlock();
_skinContainer.MatchStatic(this);
_skinContainer.MatchStatic();
ChartPlayer.etor.ContextCascadeDiscardBlock();
foreach (var i in RootTransform.GetComponentsInChildren<SkinComponent>())
i.Init();
@@ -39,7 +39,7 @@ namespace Cryville.Crtr {
readonly PropOp _durationOp;
public double EndTime { get { return _startTime + _duration; } }
public void Tick() {
_skinContainer.MatchDynamic(this, 1);
_skinContainer.MatchDynamic(1);
}
public void OnEmit(double time) {
_startTime = time;
@@ -47,7 +47,7 @@ namespace Cryville.Crtr {
ChartPlayer.etor.ContextCascadeInsert();
ChartPlayer.etor.ContextCascadeUpdate(_VAR_EFFECT_INDEX, _indexSrc);
ChartPlayer.etor.Evaluate(_durationOp, _def.duration);
_skinContainer.MatchDynamic(this, 0);
_skinContainer.MatchDynamic(0);
ChartPlayer.etor.ContextCascadeDiscard();
}
public void OnDone() {