복사하면 돼요!!화면 외부에서 사용자 인터페이스를 꺼내거나 닫는 창 만들기
복사하면 돼요!!화면 외부에서 사용자 인터페이스를 꺼내거나 닫는 창 만들기
※ 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.)