프로젝트

    SetPixel 대신 Compute Shader 사용하기

    게임에 물감이 튀는 효과가 있다 페인트 효과 Ground에 물감이 칠해지는 효과이고 동적으로 보이기 위해 Texture2D.SetPixel을 통해 매번 다른 크기, 개수만큼 원형을 그려주고 있었다. 작은 액체의 이펙트는 호출 횟수도 적고 크기도 작아서 그나마 괜찮았는데 풍선을 터뜨릴 땐 큰 범위를 SetPixel 해주니 프레임드랍이 생겼다. 안그래도 거슬렸었는데 이참에 바꿔야겠다는 생각이 들었다. 원하는 구현 내용 개수나 크기, 모양이 동적으로 그려질 수 있어야함 해당 텍스쳐의 색상에 자주 접근해서 가져와야함 자주 호출돼도 괜찮은 성능. 그리는건 역시 GPU를 사용하는게 제일 나으니까 최대한 셰이더를 사용하고싶었는데 유니티 셰이더는 아직 잘 다루지 못해 내가 원하는 위치에 원하는 크기만큼 그리는 기능을 ..

    File.WriteAllText, StreamWriter.Write

    File.WriteAlltext는 바로가기일 뿐, 내부적으론 StreamWriter를 사용한다 WriteAllText 적은 텍스트를 파일에 쓰는게 전부라면 WriteAllText를 사용하기 작성할 텍스트의 양이 많을경우 큰 임시 문자열을 생성하게 되므로 좋지 않다 StreamWriter 파일을 열고 닫는 것처럼 파일 작성 방법을 더 제어하고 싶다면 사용하기 참고 자료 https://social.msdn.microsoft.com/Forums/vstudio/en-US/d4aa0fb0-0a36-4884-9fe9-30cbd51639e0/using-filewritealltext-vrs-a-streamwriter?forum=vbgeneral using File.WriteAllText vrs a StreamWrite..

    File.ReadAllText와 StreamReader.ReadToEnd의 차이점

    https://stackoverflow.com/questions/3545402/any-difference-between-file-readalltext-and-using-a-streamreader-to-read-file Any difference between File.ReadAllText() and using a StreamReader to read file contents? At first I used a StreamReader to read text from a file: StreamReader reader = new StreamReader(dialog.OpenFile()); txtEditor.Text = reader.ReadToEnd(); but found out about File.ReadAllT..

    BinaryReader와 StreamReader 클래스의 차이

    Unity로 Save Load 시스템을 구현하다가 파일을 읽고 쓰는 클래스들에 대해 알아보게되면서 작성하게 되었다 사실 클래스명 그대로인데 BinaryReader 이진 데이터를 읽을 때 사용한다 StreamReader 텍스트 데이터를 읽을 때 사용한다 좀 더 얘기를 해보자면 컴퓨터 파일은 '바이너리 파일'과 '이진 파일'로 나뉜다 바이너리 파일 0과 1로 이루어진 데이터로 구성된 파일 (프로그램, 컴퓨터가 읽어서 사용하는 파일) .jpg, .png, .mp3, .exe, 워드, 한글 등이 바이너리 파일에 해당한다 사용자 또는 프로그램이 사용하던 정보나 숫자 값을 특별한 가공 없이 그대로 저장한다 데이터를 읽고 쓸때 파일 형식에 조건이 없기 때문에 대부분 데이터의 크기로 판단한다 따라서 '한 줄의 데이터를..

    [URP Custom Renderer Feature 만들기- Grayscale]

    구현 목표 특정 Shader만 제외하고 전체 화면에 Grayscale 효과 적용시키기 구현을 위해 필요했던 지식들 유니티 렌더 파이프라인의 변화 SRP 구조 Custom Renderer Feature 작성법 URP를 사용하면서 기존에 있던걸 사용할 수 없거나 교체된 부분들이 있어 여러 자료를 찾아봐야 했다 Custom Renderer Feature를 만들기 위해선 두 클래스를 사용하면 된다 ScriptableRenderPass ScriptableRendererFeature 기본적인 부분은 Unity Manual에 나와있다 Unity Manual: How to create a custom Renderer Feature 최종 결과물 using UnityEngine; using UnityEngine.Rende..

    2021-08-16 개발일지

    지하철UI 지도UI 작업을 끝냈다 현재 확대, 축소, 드래그하여 스크롤 기능이 들어가있다 또, 상태에 따라 스테이지의 이미지가 변경되는 기능 구현도 완료하였다

    2021-08-14 개발일지

    지하철 UI 관리 UI관리를 해보자 UI관리.. 처음 생각했을 때 떠오른건 Stack으로 쌓아서 위에있는 것부터 처리하는건데.. 음.. 먼저, 지금 만들려는 기능을 생각해보자 1. 지하철 UI를 켠다 -> Esc를 누르면? -> 옵션메뉴가 뜨는게 아니라 지하철 UI를 끈다 이 부분에선 포커싱된 UI를 두고 켜고 끄는식으로 하면 될 것 같다

    2021-08-11 개발일지

    세이브 완료 간단한 Animation 상태를 저장해야하는게 있어서 어떻게 할까 생각해보았다 1. 현재 진행중인 Animator State의 Hash 값을 저장한다 2. 저장된 값을 Play한다 원래 유니티엔 AnimatorStateInfo.nameHash라고 지금의 AnimatorStateInfo.fullPathHash와 같은 값을 반환해주는 기능이 있었는데 현재는 쓰이지 않는다. 구글링해보니 기존의 nameHash는 애매한 이름이라 shortNameHash와 fullPathHash로 기능이 나뉜 것 같다고 한다 정리하자면 AnimatorStateInfo.nameHash는 현재 사용되지 않음 AnimatorStateInfo.fullPathHash로 대체됨 AnimatorStateInfo.fullPathH..