복사하면 돼요!!화면 외부에서 사용자 인터페이스를 꺼내거나 닫는 창 만들기
복사하면 돼요!!화면 외부에서 사용자 인터페이스를 꺼내거나 닫는 창 만들기 
※ Tween 계열의 자산 이동 UI를 사용하지 않는 방법에 대한 설명입니다.
본 보도는 누구나 제작할 수 있도록gif애니메이션의 해설을 통해서만 완성되었으니 반드시 참고하시기 바랍니다
이번에 샘플 진행하면 이거 할 수 있어요.
 
환경
 
Unity 2019.1.0f2
VisualStudio2017
+α복제 보조 무료 소프트웨어 Clibor
스크립트 여기서↓
 
WindowManager.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WindowManager : MonoBehaviour
{
    [SerializeField] private GameObject Window; //移動する対象
    [SerializeField] private GameObject Buttom; //実行ボタン
    [SerializeField] private GameObject WindowButtom; //ウィンドウボタン
    [SerializeField] private float startPosition;//上の移動限界値
    [SerializeField] private float endPosition;//下の移動限界値
    [SerializeField] private float moveSpeed;//上下の移動速度
    private float nowPosition;//現在のウィンドウ座標
    private bool MoveDecision = true;//今のウィンドウがどこにあるかの判定 trueなら上
    private bool WindowTrigger = false;//ウィンドウを出すボタンの判定
    private RectTransform window;//UIの座標変更
    void Start()
    {
        window = Window.GetComponent<RectTransform>();//取得
    }
    void FixedUpdate()
    {
        nowPosition = window.localPosition.y;//現在座標の取得
        if (MoveDecision && WindowTrigger) //今ウィンドウが上にあるかつウィンドウボタンが押された時
        {
            if (nowPosition > startPosition)//この座標になるまで
            {
                window.localPosition -= new Vector3(0, moveSpeed, 0);//下に移動する
            }
            else if (nowPosition <= startPosition)//制限より移動したら
            {
                WindowTrigger = false;//入力を無効にし
                MoveDecision = false;//下についたと知らせる
            }
        }
        else if (WindowTrigger) //今ウィンドウが下にあるかつウィンドウボタンが押されたら
        {
            if (nowPosition < endPosition)//この座標になるまで
            {
                window.localPosition += new Vector3(0, moveSpeed, 0);//上に移動する
            }
            else if (nowPosition >= endPosition)//制限より移動したら
            {
                WindowTrigger = false;//入力を無効にし
                MoveDecision = true;//上についたと知らせる
            }
        }
    }
    public void OnClickWindowButtom()//ウィンドウ移動に呼ぶ
    {
        Debug.Log("ウィンドウがおされた");//ここにボタンが押されたときの実行内容
        WindowTrigger = true;//ウィンドウ判定をtrueに
    }
    public void OnClickButtom()//ボタン実行時に呼ぶ
    {
        Debug.Log("実行された");//ここにボタンが押されたときの実行内容
    }
}
사용 방법
 
준비 작업
 
1, 사용자 인터페이스의 편집에 편리하도록 2차원 모드로 설정
 
▶ 2D 모드 변경 gif
 
2, 위의 스크립트 복사
 
▶ 복사&붙여넣기 gif
 
① 레벨 라이브러리에서 객체 만들기
 
(gif의 설명은 각자의 문서 아래에 있습니다)
객체 배치
 
창 사용자 인터페이스 (빈 객체)
-Canvas(UI 구성을 통해 자동으로 생성)
창(UI → Image)
WindowsButtom(UI→Buttom)
--Text(윈도우 입력)
--Buttom(UI→Buttom)
Text(입력 실행)
이벤트 시스템(UI 배포 자동 생성)※CanvasのCanvas ScalarをScale With Screen Sizeに変更するのを忘れずに!▶ 대상 설정gif
 
객체 조정
 画像にはないですが、WindowのPosYを366に追加設定←忘れずに!!Geme 장면의 화면비는 4:3입니다.
각각의 검사기 세부 사항 ↓
 
▶ 대상 조정gif
 
② 스크립트 부착 및 설정
 
다음 그림과 같이 커브의 객체를 부착 및 수치로 입력합니다.
 
▶ gif 부착 & 설정
 
③ 버튼에 함수 할당
 
OnClick () 의 + 를 누르면 왼쪽 아래에 힐러키의 Windows UI가 부착됩니다.
오른쪽 드롭다운 목록에서
WindowsButtom에는 WindowsManager가 포함되어 있습니다.OnClickWindowButtom()
Buttom에는 WindowsManager가 포함됩니다.OnClickButtom()을 선택합니다.
이렇게 하면 완성!실행하고 확인하세요!
▶ 단추에 함수 할당gif
 
마지막
 
이번에는 간단한 UI 이동을 설명하고 제작했습니다.
이걸 적용하면 이런 느낌의 것도 (지금 개발 중) 어떻게든 파악해 보세요!
 
스크립트에 대량의 논평이 퍼졌으니 참고하십시오.
아마 더 예쁜 글쓰기가 있을 거예요. 조언이 있으면 메시지를 남겨주세요!
또 잘못됐거나 잘못됐다면 댓글을 기다려 주세요.(ω・)사랑해
보충하여 기록하다
버튼 맞춤법은 Buttom...정말 미안합니다.
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(복사하면 돼요!!화면 외부에서 사용자 인터페이스를 꺼내거나 닫는 창 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/Namiton/items/27a5ffb724a6e2fc1e8f
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WindowManager : MonoBehaviour
{
    [SerializeField] private GameObject Window; //移動する対象
    [SerializeField] private GameObject Buttom; //実行ボタン
    [SerializeField] private GameObject WindowButtom; //ウィンドウボタン
    [SerializeField] private float startPosition;//上の移動限界値
    [SerializeField] private float endPosition;//下の移動限界値
    [SerializeField] private float moveSpeed;//上下の移動速度
    private float nowPosition;//現在のウィンドウ座標
    private bool MoveDecision = true;//今のウィンドウがどこにあるかの判定 trueなら上
    private bool WindowTrigger = false;//ウィンドウを出すボタンの判定
    private RectTransform window;//UIの座標変更
    void Start()
    {
        window = Window.GetComponent<RectTransform>();//取得
    }
    void FixedUpdate()
    {
        nowPosition = window.localPosition.y;//現在座標の取得
        if (MoveDecision && WindowTrigger) //今ウィンドウが上にあるかつウィンドウボタンが押された時
        {
            if (nowPosition > startPosition)//この座標になるまで
            {
                window.localPosition -= new Vector3(0, moveSpeed, 0);//下に移動する
            }
            else if (nowPosition <= startPosition)//制限より移動したら
            {
                WindowTrigger = false;//入力を無効にし
                MoveDecision = false;//下についたと知らせる
            }
        }
        else if (WindowTrigger) //今ウィンドウが下にあるかつウィンドウボタンが押されたら
        {
            if (nowPosition < endPosition)//この座標になるまで
            {
                window.localPosition += new Vector3(0, moveSpeed, 0);//上に移動する
            }
            else if (nowPosition >= endPosition)//制限より移動したら
            {
                WindowTrigger = false;//入力を無効にし
                MoveDecision = true;//上についたと知らせる
            }
        }
    }
    public void OnClickWindowButtom()//ウィンドウ移動に呼ぶ
    {
        Debug.Log("ウィンドウがおされた");//ここにボタンが押されたときの実行内容
        WindowTrigger = true;//ウィンドウ判定をtrueに
    }
    public void OnClickButtom()//ボタン実行時に呼ぶ
    {
        Debug.Log("実行された");//ここにボタンが押されたときの実行内容
    }
}
Reference
이 문제에 관하여(복사하면 돼요!!화면 외부에서 사용자 인터페이스를 꺼내거나 닫는 창 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Namiton/items/27a5ffb724a6e2fc1e8f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)