Скрипт в котором опубликован enum:
public enum FadeState { In, Out, Stop, InEnd, OutEnd }
public class ScreenFader : MonoBehaviour {
Texture colorTexture;
Color fadeColor = Color.black;
[HideInInspector]public float fadeBalance;
public FadeState fadeState;
public float fadeSpeed; // Скорость стремления баланса
public bool d;
public bool w;
public float fromInDelay; // Мнимые задержки перед началом процесса затемнение/расцветания
public float fromOutDelay;
void Awake () {
Texture2D nullTexture = new Texture2D(1,1) as Texture2D;
nullTexture.SetPixel(0,0, Color.black);
nullTexture.Apply();
colorTexture = (Texture)nullTexture;
switch (fadeState) {
case FadeState.In:
fadeBalance = (0 + fromInDelay);
break;
case FadeState.Out:
fadeBalance = (1 + fromInDelay);
break;
}
}
void Update(){
fadeColor.a = fadeBalance;
if(fadeBalance > (1 + fromInDelay)){
fadeBalance = (1 + fromInDelay);
fadeState = FadeState.InEnd;
}
if(fadeBalance < -(0 + fromOutDelay)){
fadeBalance = -(0 + fromOutDelay);
fadeState = FadeState.OutEnd;
}
switch (fadeState){
case FadeState.In:
fadeBalance+=Time.deltaTime*fadeSpeed;
break;
case FadeState.Out:
fadeBalance-=Time.deltaTime*fadeSpeed;
break;
case FadeState.Stop:
fadeBalance -= 0;
break;
case FadeState.InEnd:
fadeBalance = (1 + fromInDelay);
break;
case FadeState.OutEnd:
fadeBalance = -(0 + fromOutDelay);
break;
}
}
void OnGUI() {
GUI.depth = -2;
GUI.color = fadeColor;
GUI.DrawTexture(new Rect(0,0,Screen.width, Screen.height), colorTexture, ScaleMode.StretchToFill, true);
}
}
При InEnd ничего не происходит
Неработающий скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TeleportBySafing : MonoBehaviour {
public GameObject Teleport;
public GameObject Text;
private bool teleported;
public Transform player;
public GameObject BlackScreen;
FadeState myfadestate;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if(teleported == true)
{
BlackScreen.GetComponent<ScreenFader>().fadeState = FadeState.In;
BlackScreenn();
teleported = false;
}
}
void BlackScreenn (){
if (myfadestate == FadeState.InEnd) {
player.transform.position = Teleport.transform.position;
BlackScreen.GetComponent<ScreenFader>().fadeState = FadeState.Out;
}
}
void OnTriggerEnter(Collider col)
{
if (col.tag == "Player") {
//player = col.gameObject;
teleported = true;
}
}