using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ModeSelectScene : MonoBehaviour {

    RectTransform rect;

    [SerializeField] GameObject InitCanvas;

    //[SerializeField] GameObject infoText;
    [SerializeField] GameObject configCanvas;

	// Use this for initialization
	void Start () {
        configCanvas.SetActive(false);
	}
	
	// Update is called once per frame
	void Update () {
		
	}

    enum DisplayMode{
        Left,
        Right
    };

    //説明画面のボタンが押されたらButtonEventより呼び出される
    public void pushInfoButton()
    {
        //StartCoroutine(displayRectObj(infoText, DisplayMode.Left));
    }

    //設定ボタンが押されたらButtonEventより呼び出される
    public void pushConfigButton()
    {
        StartCoroutine(displayRectObj(configCanvas, DisplayMode.Right));
    }

    public void pushConfigBackButton()
    {
        configCanvas.SetActive(false);
        InitCanvas.SetActive(true);
        //StartCoroutine(BackRectObj(configCanvas, DisplayMode.Left));
    }

    //画面脇からスライドして中央へ
    IEnumerator displayRectObj(GameObject obj, DisplayMode mode)
    {
        InitCanvas.SetActive(false);
        rect = obj.GetComponent<RectTransform>();

        float screenWidth = (float)Screen.width;
        if (mode == 0) {
            rect.position = new Vector2(-screenWidth * 2f, 0);//画面外左に配置
        }
        else
        {
            rect.position = new Vector2(screenWidth * 2f, 0);//画面外右に配置
        }

        obj.SetActive(true);

        float moveSpeed = 0.5f;

        float recX = rect.position.x;
        //正の値にしておく
        if (recX <= 0)
        {
            recX = recX - (recX * 2f);
            moveSpeed = -0.5f;//負の値にすることで右に動かすようにする
        }

        while (recX >= 0) {
            rect.anchoredPosition = new Vector2(rect.position.x - moveSpeed, 0);
            recX -= 0.5f;
            yield return null;
        }
    }

    IEnumerator BackRectObj(GameObject obj, DisplayMode mode)
    {
        rect = obj.GetComponent<RectTransform>();
        float screenWidth = (float)Screen.width;

        float moveSpeed = 0.5f;

        float recX = rect.position.x;
        //正の値にしておく
        if (mode == 0)
        {
            moveSpeed = -0.5f;//負の値にすることで右に動かすようにする
        }

        while (recX <= screenWidth * 2f)
        {
            rect.anchoredPosition = new Vector2(rect.position.x + moveSpeed, 0);
            recX += 0.5f;
            yield return null;
        }

        configCanvas.SetActive(false);
        InitCanvas.SetActive(true);
    }
}