lucar 님의 블로그

고정 헤더 영역

글 제목

메뉴 레이어

lucar 님의 블로그

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (76)
    • 스파르타 코딩캠프 (64)
      • '24 Today I Learned (56)
    • 블렌더 3D 모델링 (4)
      • Today I Learned (4)

검색 레이어

lucar 님의 블로그

검색 영역

컨텐츠 검색

전체 글

  • 1118 TIL - 플랫포머 2D 캐릭터 이동하기

    2024.11.18 by lucar

  • 1112 TIL - 개인 프로젝트 진행 중

    2024.11.12 by lucar

  • 1107 TIL - 팀 프로젝트 완료

    2024.11.07 by lucar

  • 1104 TIL - 데이터 저장

    2024.11.04 by lucar

  • 1030 TIL - C# 제네릭 싱글톤

    2024.10.30 by lucar

  • 1025 TIL - 오브젝트 풀을 활용한 효과음 구현

    2024.10.25 by lucar

  • 1017 TIL - 씬 전환 시 정보 이동

    2024.10.17 by lucar

  • 1016 TIL - Unity InputSystem 심화

    2024.10.16 by lucar

1118 TIL - 플랫포머 2D 캐릭터 이동하기

또 새로운 프로젝트의 시작이다. 이번에는 2D플랫포머에서의 점프에 대해서 생각해보자 윗 블럭이 통과가 불가능한 블럭이 아니라면 점프를 통해 아래에서 위로 점프를 통해 통과할 수 있으며밑 점프를 통해 블럭에서 아래로 이동이 가능하게 구현해야한다. 우선은 OnGround라는 함수를 만들어 이 캐릭터가 땅에(선택된 레이어에 포함된 게임오브젝트) 위에 있는지확인해야한다.private bool OnGround(){ //Todo : 캐릭터 스프라이트 정해지고 나서 레이 갯수를 늘려서 스프라이트 끝에서 끝까지 RaycastHit2D hit = Physics2D.Raycast(new Vector2(Player.transform.position.x, Player.transform.position.y - 1f)..

스파르타 코딩캠프/'24 Today I Learned 2024. 11. 18. 21:32

1112 TIL - 개인 프로젝트 진행 중

아직 테스트 해보진 못했는데 인벤토리를 Queue로 관리하면 좀 편리할 것 같아서 코드를 짰다. using System;using System.Collections.Generic;using System.Linq;using Unity.VisualScripting;using Unity.VisualScripting.Antlr3.Runtime.Misc;using UnityEngine;using UnityEngine.UI;public class Inventory : MonoBehaviour{ public Dictionary> SlotByEquipPlace; private void Awake() { SlotByEquipPlace = new Dictionary>(); Slot..

스파르타 코딩캠프/'24 Today I Learned 2024. 11. 12. 20:03

1107 TIL - 팀 프로젝트 완료

오늘은 팀프로젝트 완료 기념으로 트러블 슈팅을 해보자 우선 몇개의 스크립트를 살펴보자 차례대로 인터페이스 IInteractablepublic interface IInteractable{ string GetPrompt(); void Interact();} 를 상속받은 AnimatedObjectpublic class AnimatedObject : MonoBehaviour, IInteractable{ protected Animator Animat; public AnimatedData Data; private void Start() { if(!TryGetComponent(out Animator animator)) { Animat = t..

스파르타 코딩캠프/'24 Today I Learned 2024. 11. 7. 21:39

1104 TIL - 데이터 저장

데이터 저장은 여러가지 방법이 있는데 PlayerPrefs, CSV, XML, JSON, SO 등 의 방법이 있다. 우선 CSV의 경우 엑셀에서 보기 쉽게 정리 할 수 있는 장점이 있지만생성된 파일을 직접 보고 한 눈에 알아보기에는 큰 어려움이 있다. 대충 이런 엑셀파일을 작성 한 후CSV파일로 다운로드 받자.그리고 메모장으로 열어보면 진짜 복잡하게도 나오는데하여튼 이것을 잘 잘라서 불러와보자. 우선 한 열은 \n으로 구분되며각 행은 ,로 구분된다. public class Dialogue : MonoBehaviour{ Dictionary ItemData = new Dictionary(); string[] rowData; string[,] columnData; private void ..

카테고리 없음 2024. 11. 4. 22:47

1030 TIL - C# 제네릭 싱글톤

디자인 패턴 중에 싱글톤 이라는 패턴이 있다. 이전에 설명한 적이 있어서 자세한 설명은 생략할껀데 Unity에서 스크립트를 작성하다보면 정말 많은 양의 매니저들이 생겨난다. GameManager, CharacterManager, QuestManager, ...그리고 보통 매니저들은 DontDestroyOnLoad를 걸어서 씬 간의 이동에도 파괴되지 않도록 하고그렇게 파괴되지 않은 수 많은 매니저들은 씬 간의 정보 교환이나 굵직한 스크립트를 넘겨주는 역할을 한다. 그리고 그 매니저들은 싱글톤 패턴을 주로 사용하게 되는데 수많은 싱글톤들을 일일히 작성하거나 복사 붙여넣기 하는 것도 지겹고제네릭을 사용해서 상속받으면 끝인 형식으로 만들어보자. public class Singleton : MonoBehaviou..

스파르타 코딩캠프/'24 Today I Learned 2024. 10. 30. 20:50

1025 TIL - 오브젝트 풀을 활용한 효과음 구현

예전에 이터널 리턴이라는 게임을 하다가 든 생각이 있다. 나만의 상점이라는 페이지가 있는데 해당 페이지에서 마우스를 빠르게 좌우로 움직이면서오브젝트에 커서를 댔다 놨다를 반복하면 소리가 점점 엹어지다가 들리지 않게 되는데이게 왜 그런걸까에 대해 생각을 해보니 효과음을 내는 여러칸의 사운드 소스가 있고모든 사운드 소스가 꽉찬 상태에서 해당 효과음이 새로 추가되면서이전 사운드 소스를 덮어 씌우는 것 같았다. 해당 방법의 장점으로는 여러가지 효과음을 여러개의 소스에서 처리하다 보니들려야 할 사운드는 확실히 들을 수 있다는 것이고단점은 미리 사운드를 재생할 오브젝트를 생성해 두었기 때문에메모리에 공간을 차지할 것으로 예상되는 부분이다. 전체 스크립트public class SoundManager : MonoBeh..

스파르타 코딩캠프/'24 Today I Learned 2024. 10. 25. 19:33

1017 TIL - 씬 전환 시 정보 이동

오늘 프로젝트 진행 중에 MainScene에서 발생한 점수를ScoreScene으로 가져오기 위해 public float Score를 선언하고ScoreScene에서 가져오려고 하자 NullExceptionError가 발생했다. Score값이 담겨있는 Hierachy가 씬이 이동하면서 같이 넘어오지 않기 때문에발생한 문제로 보인다 이에 대한 해결법은 대충 4가지 정도가 생각나는데 정적변수인 public static float Score로 선언하여 접근하기싱글톤 패턴을 가진 GameManager를 통해 값을 넘겨주기DontDestroyOnLoad를 통해 씬이 이동될 때 같이 넘어가게 만들어주기PlayerPrefs를 통해 값을 하드웨어에 저장해서 넘겨주기 이번에 선택한 방법은 정적변수로 넘겨주기이다. 각각의 특..

스파르타 코딩캠프/'24 Today I Learned 2024. 10. 17. 21:36

1016 TIL - Unity InputSystem 심화

금일 강의 내용 정리 저번에 InputSystem에 대해 간단하게 정리했는데보통 5가지의 방법으로 InputSystem이 사용된다. 아래의 내용은 동일하게 2D 평면 상 움직이는 캐릭터가 좌, 우로 이동할 때를 가정한다. 1. 레거시 방식public class PlayerInputManager : MonoBehaviour{ public float dir; private void Update() { if (Input.GetKey(KeyCode.A)) { dir = -1; } else if (Input.GetKey(KeyCode.D)) { dir = 1; } else..

스파르타 코딩캠프/'24 Today I Learned 2024. 10. 16. 20:57

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 5 6 7 ··· 10
다음
TISTORY
lucar 님의 블로그 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바