본문 바로가기
✨ Club/C크루 게임 개발챌린지 | 유니티 2D (C#)

본선개발 - Unity 14

by 정람지 2022. 9. 12.

그림은 내가 그린 악당 캐릭터 시안~

회의하니 정리가 되는 느낌~

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 이런 게 뭔지 궁금했었는데 컴포넌트였다

 

Unity C# > 컴포넌트 정리

공부하면서 알게 된 유니티 컴포넌트들을 정리한 문서입니다.😀

jiwanm.github.io

 

 

유니티 학습을 위한 C# 기본 문법 요약 정리(2)

안녕하세요 엘빈입니다. 저번 포스팅에서는 유니티 학습을 위한 c# 가장 기초적인 문법을 포스팅하였습니다. 이번 포스팅에서는 저번 포스팅 단계에서 좀 더 심화된 문법들을 알아보려고 합니

alvine.tistory.com

클래스 인스턴스 = new 키워드 생성자()

 

리스트는 배열과 유사하다. 특별한 점은 꺾은 괄호(<>) 안에 자료형을 지정한다

 

 

ScrollBar 클래스 (System.Windows.Forms)

scroll bar 컨트롤의 기본 기능을 구현합니다.

docs.microsoft.com

 

 

 

[C#] Mathf.Lerp 쉽게 이해하기

유니티에서 Lerp는 대부분 선형 보간을 사용하여 부드러운 움직임을 표현하기 위해 Update에 넣어 사용하...

blog.naver.com

Mathf.Lerp(float a, float b, float t)

선형 보간법 !

이게 동적 스크롤의 핵심인 것 같다!

 

[Unity] 트랜스폼(Transform) 크기(Scale)

Transform.lossyScale Transform.lossyScale 은 게임오브젝트의 절대적인 크기를 나타냅니다. Transform.lossyScale 은 읽기전용(readonly)이기 때문에 게임오브젝트의 절대적인 크기를 설정할 수 없습니다. Trans..

ssabi.tistory.com

transform.localScale

Transform.localScale은 게임오브젝트의 상대적인 크기를 나타냅니다.
게임오브젝트의 부모가 있을 경우 부모를 기준으로 상대적인 크기를 나타냅니다.

 

[유니티] 자식 오브젝트를 얻을때 사용하는 메소드

유니티에서 게임 오브젝트 찾는 법은 한두가지가 아니다. 이번에는 게임 오브젝트 내 게임 오브젝트 즉, 하위 게임오브젝트를 찾는 방법을 정리해보려 한다. 대표적으로 세 가지가 존재한다. tra

codingmania.tistory.com

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#이다 책 유명한 것 같던데 유튜브로도 있는 건가?

멘토님이 모르는 거 설명 너무 친절하게 잘해주신다ㅠㅜ

너무 많이 물어봐서 쫌 죄송해요ㅜㅜㅜ


수연이가 만든 파일 열어보기

 

(유니티) 프로젝트 옮기는 법 – 앤글 블로그

해당 게시물은 현재 작업중인 프로젝트를 다른 사람에게 공유하거나 다른 컴퓨터로 옮기는 법을 다루는 게시물입니다. 프로젝트 에셋 패키지 형태로 저장하기 작업중인 프로젝트를 열어 유니

angliss.cc

파일을 열면 한글이 깨져서 오류가 난다

사파리로 드래그드롭해 한글이 제대로 나온 파일을 다시 복붙해 저장하면 해결~

 

수연이가 만든 프로그램을 볼 수 있다.

 

내것도 익스포트해서 공유했다~


컴포넌트를..잘 확인하자...

 

 

 

 

 

 

'✨ Club > 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