Почему не работает скрипт? (if enum)

Программирование на Юнити.

Почему не работает скрипт? (if enum)

Сообщение SashaNyasha 15 авг 2018, 17:24

Скрипт в котором опубликован 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;
}
}
SashaNyasha
UNIт
 
Сообщения: 51
Зарегистрирован: 13 авг 2015, 16:20

Re: Почему не работает скрипт? (if enum)

Сообщение seaman 15 авг 2018, 21:39

А нормально оформить код - религия не позволяет?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Почему не работает скрипт? (if enum)

Сообщение getAlex 16 авг 2018, 21:04

У вас myfadestate не инициализирован:
Синтаксис:
Используется csharp
FadeState myfadestate;

А затем вы его сравниваете
Синтаксис:
Используется csharp
if (myfadestate == FadeState.InEnd)

От чего не получаете равенство.
getAlex
Адепт
 
Сообщения: 1775
Зарегистрирован: 10 авг 2013, 18:30


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot] и гости: 9