그림은 내가 그린 악당 캐릭터 시안~
회의하니 정리가 되는 느낌~
api는 우리의 방향성에 맞지 않는다고 생각되어 (식을 만드는 재미) 포기..! 언젠간 도움이 될 공부였을 거다.
동적스크롤에 대한 강의를 솔민이가 찾아줬다..! 흑흑 이거 보고 하면 되겠다...ㅠㅠ 혼자하기는 막막
<해야 할 것>
코드 짜기
코드 이해/공부하기
추가 모션(쌓이기.클릭 등) 구현 가능?
마우스이벤트 터치이벤트로 바꾸기
모바일 연결해보기
수연이 파일 열어보기
SVM 탐구
코드 짜기
카드 슬라이드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class swipe_menu : MonoBehaviour
{
public GameObject scrollbar;
float scroll_pos = 0;
float[]pos;
void Start(){
}
// Update is called once per frame
void Update()
{
pos = new float[transform.childCount];
float distance = 1f / (pos.Length -1f);
for (int i = 0; i <pos.Length; i++) {
pos [i] = distance * i;
}
if (Input.GetMouseButton(0)){
scroll_pos = scrollbar.GetComponent<Scrollbar> ().value;
}else{
for (int i = 0; i < pos.Length; i++){
if (scroll_pos < pos[i] + (distance /2) && scroll_pos > pos[i] - (distance /2)){
scrollbar.GetComponent<Scrollbar>().value = Mathf.Lerp (scrollbar.GetComponent<Scrollbar>().value, pos[i], 0.1f);
}
}
}
// 2
for (int i = 0; i < pos.Length; i++){
if (scroll_pos< pos [i] + (distance /2) && scroll_pos > pos[i] - (distance /2)){
transform.GetChild (i).localScale = Vector2.Lerp (transform.GetChild(i).localScale, new Vector2(1f,1f),0.1f);
for (int a = 0; a < pos.Length; a++){
if (a != i) {
transform.GetChild (a).localScale = Vector2.Lerp(transform.GetChild(a).localScale, new Vector2(0.8f,0.8f), 0.1f);
}
}
}
}
}
}
카드 슬라이드 + 가운데 카드 커짐 까지 되야 하는데 그냥 슬라이드만 된다.. 왜지
Debug.Log() 찍어도 안 뜬다.. 뭐지..
코드 이해/공부하기
UI 에서 캔버스에서 스크롤 뷰!
스크롤 없앨 수 있음
지금은 옆으로 넘기는 것만 필요하므로 Vertical 삭제
컴포넌트들은 클래스다.
변수 선언할 때 앞에 오는 rigidbody, gameobject 이런 게 뭔지 궁금했었는데 컴포넌트였다
클래스 인스턴스 = new 키워드 생성자()
리스트는 배열과 유사하다. 특별한 점은 꺾은 괄호(<>) 안에 자료형을 지정한다
Mathf.Lerp(float a, float b, float t)
선형 보간법 !
이게 동적 스크롤의 핵심인 것 같다!
transform.localScale
Transform.localScale은 게임오브젝트의 상대적인 크기를 나타냅니다.
게임오브젝트의 부모가 있을 경우 부모를 기준으로 상대적인 크기를 나타냅니다.
transform.childCount()
transform.GetChild()
시간이 없지만 지식과경험도 없는 은체는
박치기로 한줄한줄 공부했다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // using 지시문 추가
public class swipe_menu : MonoBehaviour//모든 유니티 컴포넌트 스크립트는 MonoBehaviour 를 상속
{
public GameObject scrollbar; // 어디에서든 접근 가능한/ 게임오브젝트 컴포넌트/scrollbar 변수-현재 부착된 오브젝트를 가르킴
float scroll_pos = 0; // scroll_pos라는 실수형 변수
float[] pos; // 실수형 배열 pos
void Start(){
}//시작할 때 실행하는 함수
void Update()//프레임마다 실행하는 함수
{
pos = new float[transform.childCount]; //transform.childCount 으로 자식의 개수를 불러 오기
float distance
distance = 1f / (pos.Length -1f); // f 는 float/.Length는 배열 pos의 개수를 셈
for (int i = 0; i < pos.Length,i++){// 배열 pos 에다가 길이를 놓음
pos [i] = distance * i;
}
if (Input.GetMouseButton(0)){ //마우스 버튼 입력 처리/(0) : 마우스 왼쪽 버튼 의미
scroll_pos = scrollbar.GetComponent<Scrollbar>().value; //scroll_pos변수에
//스크롤바 값 가져 오기 -> 게임오브젝트명.GetComponent<Scrollbar>().value
}else{
for (int i = 0; i < pos.Length; i++){
if (scroll_pos < pos[i] + (distance /2) && scroll_pos > pos[i] - (distance /2)){ //으아악
scrollbar.GetComponent<Scrollbar>().value = Mathf.Lerp (scrollbar.GetComponent<Scrollbar>().value, pos[i], 0.1f);
}// 선형보간법 Mathf.Lerp 으로 부드러운 스크롤링 구현
}
}
for (int i = 0; i < pos.Length; i++){
if (scroll_pos< pos [i] + (distance /2) && scroll_pos > pos[i] - (distance /2)){
transform.GetChild (i).localScale = Vector2.Lerp (transform.GetChild(i).localScale, new Vector2(1f,1f),0.1f);
//transform.localScale -> 게임오브젝트의 부모 기준 상대적인 크기
for (int a = 0; a < pos.Length; a++){
if (a != i) {
transform.GetChild(a).localScale = Vector2.Lerp(transform.GetChild(a).localScale, new Vector2(0.8f,0.8f), 0.1f);
//transform.GetChild(a) -> 번호 순으로 자식 GameObject를 찾는 방법
//자식 오브젝트의 크기
//Vector2.Lerp 이것도 보간법
}
}
}
}
}
}
와 근데..뭘 썼는지를 알아도
중간에 보간법이나 어떤 식으로 코드를 짠 건지가 이해가 안 된다
바꿔 보려고 했는데..
멘토님이 알려주신 무료 C# 강의
이것이 c#이다 책 유명한 것 같던데 유튜브로도 있는 건가?
멘토님이 모르는 거 설명 너무 친절하게 잘해주신다ㅠㅜ
너무 많이 물어봐서 쫌 죄송해요ㅜㅜㅜ
수연이가 만든 파일 열어보기
파일을 열면 한글이 깨져서 오류가 난다
사파리로 드래그드롭해 한글이 제대로 나온 파일을 다시 복붙해 저장하면 해결~
수연이가 만든 프로그램을 볼 수 있다.
내것도 익스포트해서 공유했다~
컴포넌트를..잘 확인하자...
끝
'✨ Club|Project > C크루 게임 개발챌린지 | 유니티 2D (C#)' 카테고리의 다른 글
본선개발 - Unity 16 (0) | 2022.09.14 |
---|---|
본선개발 - Unity15 (0) | 2022.09.14 |
본선공부 - Unity 13 (0) | 2022.09.12 |
본선개발 - Unity 12 (0) | 2022.09.11 |
본선개발 - Unity 11 (0) | 2022.09.10 |