자세히보기
반응형

공부 나눔 (Sharing Study)/Unity 와 C# 7

[Unity/C#] 카메라가 벽을 통과하지 못하게 만들기

이번 시간에는 플레이어를 따라다니는 카메라가 벽을 통과하지 못 하도록 만드는 방법을 배워보도록 하겠습니다 :) 1. 캐릭터와 공간 준비 바닥(Plane)과 플레이어(Capsule), 벽(Cube)을 만들어 배치하고, 플레이어는 움직일 수 있게 스크립팅을 해둔 상태입니다. 2. 카메라 배치 메인 카메라를 캐릭터를 따라다니는 3인칭 카메라를 만들기 위해 메인 카메라의 위치와 각도를 수정합니다. 카메라가 플레이어가 이동함에 맞춰 따라다니는 기능이 필요합니다. 이 기능을 메인 카메라에 바로 적용하면 카메라가 플레이어를 기준으로 회전할 수 없으므로 부모 오브젝트를 만들어 기능을 분리하도록 하겠습니다. (카메라의 부모 : 플레이어 따라다니기 / 카메라 : 회전 및 벽 통과 불가) 3. 카메라의 부모는 플레이어 따라..

[Unity/C#] 가장 쉽게 포물선 '위로' 그리는 방법 (+라인 렌더러)

포물선을 그리는 방법은 많지만 '위로' 포물선을 그리는 방법을 소개하는 내용이 없어서 이번에는 포물선을 위로 그리는 방법 중 가장 쉬운 방법을 배워보겠습니다. 포물선을 그릴 때는 라인 렌더러를 사용할 예정입니다 :) 1. 포물선을 그리기 위한 준비 포물선의 시작지점과 끝지점을 시각적으로 표현하기 위한 Sphere 2개와 테스트 용으로 사용될 Cube를 배치하고, 큐브에는 Parabola 라는 스크립트를 넣어두었습니다. 2. Slerp를 이용한 포물선 이해하기 포물선을 그리기 위해 Slerp() 함수를 사용할 예정입니다. Slerp() 함수는 구형보간을 하는 함수로, 두 점을 잇는 원을 그려 곡선상에서의 지점을 얻는 방식입니다. 더보기 [ 유니티 공식 문서 💬 ] https://docs.unity3d.co..

[Unity/C#] 영상 재생, 일시정지, 볼륨 조절 (Video Player)

지난 두 가지 게시물을 통해 유니티에 영상 넣는 방법을 배웠습니다 이번에는 그 영상을 재생, 일시정지, 볼륨 조절하는 방법을 배워보겠습니다 더 나아가서 변수만 바뀌어도 실시간으로 상태가 변하게 하는 기능까지 알려드릴게요! :) ↓ 지난 게시글 ↓ https://yoonstone-games.tistory.com/39?category=798233 [Unity/유니티] 영상 넣는 방법 (알파값 있는 영상, 배경없는 영상) 유니티에서 다양한 방법으로 활용되고 있는 영상을 넣는 방법과 '배경이 없는, 알파값이 있는 영상'을 넣는 방법을 함께 알아보도록 하겠습니다 :) 1. 유니티에 영상 쉽게 넣기 (드래그앤드롭) 먼 yoonstone-games.tistory.com https://yoonstone-games.ti..

[Unity/C#] 방금 클릭한 UI 이름, 정보 가져오기

유니티에서 방금 클릭한 UI를 가져오는 방법을 알아보도록 하겠습니다! 여러 개의 버튼에 동일한 기능(함수)을 넣고 싶은데 누른 버튼의 이름 혹은 버튼의 정보에 따라 다른 작업을 추가하고 싶을 때 각각 다른 함수를 만들어 넣는 것보다 더욱 효율적인 방법입니다 :) 1. 버튼을 눌렀을 때 호출될 함수 작성하기 저 버튼을 눌렀을 때 호출이 될 함수를 작성합니다 저는 ClickWhat이라는 이름으로 스크립트를 만들었습니다. ClickWhat 스크립트를 열어 코드를 적어봅시다. (주석 부분과 print()는 선택사항입니다) using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using ..

[Unity/C#] 데이터 저장/불러오기 가장 쉬운 방법 (Json)

유니티에서 데이터를 저장하는 방법에 대해 알아보도록 하겠습니다! 이 방법을 통해 게임을 껐다가 켜도 데이터가 유지되도록 할 수 있습니다. (저는 챕터의 잠금여부를 저장했습니다 : Bool값) 1. 데이터 관리 / 저장 할 데이터 스크립트 생성하기 먼저 데이터 저장을 사용할 유니티프로젝트를 열어 Asset 파일 속 원하는 위치에 C#스크립트를 새로 작성해야 합니다. 저는 데이터의 저장과 불러오기를 관리할 스크립트는 DataManager, 저장해야 할 데이터들을 관리할 스크립트는 GameData라는 이름으로 만들었습니다. 2. 데이터 관리 스크립트 작성하기 DataController 스크립트를 열어 코드를 적어봅시다. (pirnt 부분은 선택사항입니다) using System.IO; using UnityEn..

[Unity/C#] UI 버튼 일반 클릭(터치) vs 롱클릭(터치)

유니티 내에 존재하는 UI 중 Button의 기본적인 클릭 기능과 길게 클릭했을 때 특정 기능이 수행되는 롱클릭 기능 만드는 방법을 알아보겠습니다 :) 1. Button 만들기 가장 먼저 기능을 수행할 버튼이 있어야 합니다 Hierarchy 창에서 우클릭 후 UI - Button을 눌러 버튼을 만들어 줍니다 생성한 버튼은 원하는 위치에 원하는 크기와 모양으로 배치해주시면 됩니다 2. 일반 클릭 (OnClick) 기능 스크립트를 새로 생성하거나 기존 사용하던 스크립트에 클릭했을 때 호출될 함수를 만들어줍니다 public void ButtonClick() { print("버튼 일반 클릭"); } 저는 버튼을 클릭했을 때 "버튼 일반 클릭"이라고 출력되도록 했습니다 버튼을 클릭했을 때 호출 될 '함수'는 꼭 ..

[Unity/C#] CSV파일 파싱하는 방법

다양한 종류의 텍스트를 관리하기 위해 많은 개발자가 사용하는 방법인 CSV 파일을 파싱하는 방법을 알아보도록 하겠습니다 :) 1. CSV 파일 만들어 저장하기 먼저 유니티에 파싱할 CSV 파일을 만들어야 합니다 메모장, 엑셀 등으로 만들 수 있으나 저는 정리하기도 쉽고, 한눈에 보기 좋은 엑셀로 제작했습니다 저는 이렇게 코드에서 사용할 때 헷갈리지 않도록 번호를 쓰고, 각 챕터에 사용되는 자막을 써두었습니다 (줄이 비어있으면 특정 행동을 하도록 하기 위해 중간중간 줄을 비워뒀습니다 따라 하지 않으셔도 됩니다) 맨 위에 있는 Number, Chapter, Content가 써있는 줄은 'Header'라고 부르는 하위항목 설명란입니다 다른 이름으로 저장 → CSV UTF-8(쉼표로 분리)(*. csv)로 변경..

728x90
반응형