public void CreateCurtain(CurtainType curtainType, string sceneName = "") { switch (curtainType) { case CurtainType.cin: var curt = Instantiate(Resources.Load <CurtainManager>("Prefabs/Curtain"), GameObject.Find("Canvas").transform, false); curt.In(); break; case CurtainType.cout: curt = Instantiate(Resources.Load <CurtainManager>("Prefabs/Curtain"), GameObject.Find("Canvas").transform, false); curt.Out(sceneName); break; } }
public void RenderCurtain(int edge, CurtainType curtainType, int swag, bool repeat) { var swagArray = new List<int>(); int curtainDir, xlimit, middle, ylimit; int swaglen = BufferHt > 1 ? swag*BufferWi/40 : 0; double position = GetEffectTimeIntervalPosition(); if (swaglen > 0) { double a = (double) (BufferHt - 1)/(swaglen*swaglen); for (int x = 0; x < swaglen; x++) { swagArray.Add((int) (a*x*x)); } } if (curtainType < CurtainType.CurtainOpenClose) { if (FitToTime) { xlimit = (int) (position*BufferWi); ylimit = (int) (position*BufferHt); } else { xlimit = (int) (repeat || State < 200 ? (State%200)*BufferWi/199 : BufferWi); ylimit = (int) (repeat || State < 200 ? (State%200)*BufferHt/199 : BufferHt); } } else { if (FitToTime) { xlimit = (int) (position <= .5 ? position*2*BufferWi : (position - .5)*2*BufferWi); ylimit = (int) (position <= .5 ? position*2*BufferHt : (position - .5)*2*BufferHt); } else { xlimit = (int) (repeat || State < 400 ? (State%200)*BufferWi/199 : 0); ylimit = (int) (repeat || State < 400 ? (State%200)*BufferHt/199 : 0); } } if (State == 0 || curtainType < CurtainType.CurtainOpenClose) { curtainDir = (int)curtainType%2; } else if (xlimit < _lastCurtainLimit) { curtainDir = 1 - _lastCurtainDir; } else { curtainDir = _lastCurtainDir; } _lastCurtainDir = curtainDir; _lastCurtainLimit = xlimit; if (curtainDir == 0) { xlimit = BufferWi - xlimit - 1; ylimit = BufferHt - ylimit - 1; } switch (edge) { case 0: // left DrawCurtain(true, xlimit, swagArray); break; case 1: // center middle = (xlimit + 1)/2; DrawCurtain(true, middle, swagArray); DrawCurtain(false, middle, swagArray); break; case 2: // right DrawCurtain(false, xlimit, swagArray); break; case 3: DrawCurtainVertical(true, ylimit, swagArray); break; case 4: middle = (ylimit + 1)/2; DrawCurtainVertical(true, middle, swagArray); DrawCurtainVertical(false, middle, swagArray); break; case 5: DrawCurtainVertical(false, ylimit, swagArray); break; } }
public void RenderCurtain(int edge, CurtainType curtainType, int swag, bool repeat) { var swagArray = new List <int>(); int curtainDir, xlimit, middle, ylimit; int swaglen = BufferHt > 1 ? swag * BufferWi / 40 : 0; double position = GetEffectTimeIntervalPosition(); if (swaglen > 0) { double a = (double)(BufferHt - 1) / (swaglen * swaglen); for (int x = 0; x < swaglen; x++) { swagArray.Add((int)(a * x * x)); } } if (curtainType < CurtainType.CurtainOpenClose) { if (FitToTime) { xlimit = (int)(position * BufferWi); ylimit = (int)(position * BufferHt); } else { xlimit = (int)(repeat || State < 200 ? (State % 200) * BufferWi / 199 : BufferWi); ylimit = (int)(repeat || State < 200 ? (State % 200) * BufferHt / 199 : BufferHt); } } else { if (FitToTime) { xlimit = (int)(position <= .5 ? position * 2 * BufferWi : (position - .5) * 2 * BufferWi); ylimit = (int)(position <= .5 ? position * 2 * BufferHt : (position - .5) * 2 * BufferHt); } else { xlimit = (int)(repeat || State < 400 ? (State % 200) * BufferWi / 199 : 0); ylimit = (int)(repeat || State < 400 ? (State % 200) * BufferHt / 199 : 0); } } if (State == 0 || curtainType < CurtainType.CurtainOpenClose) { curtainDir = (int)curtainType % 2; } else if (xlimit < _lastCurtainLimit) { curtainDir = 1 - _lastCurtainDir; } else { curtainDir = _lastCurtainDir; } _lastCurtainDir = curtainDir; _lastCurtainLimit = xlimit; if (curtainDir == 0) { xlimit = BufferWi - xlimit - 1; ylimit = BufferHt - ylimit - 1; } switch (edge) { case 0: // left DrawCurtain(true, xlimit, swagArray); break; case 1: // center middle = (xlimit + 1) / 2; DrawCurtain(true, middle, swagArray); DrawCurtain(false, middle, swagArray); break; case 2: // right DrawCurtain(false, xlimit, swagArray); break; case 3: DrawCurtainVertical(true, ylimit, swagArray); break; case 4: middle = (ylimit + 1) / 2; DrawCurtainVertical(true, middle, swagArray); DrawCurtainVertical(false, middle, swagArray); break; case 5: DrawCurtainVertical(false, ylimit, swagArray); break; } }