Unity/C# 2022. 1. 28. 10:18[C#]선택적 매개변수로 Color사용 / ?? 및 ??=, ?. 연산자

선택적 매개변수로 Color를 사용하려할때 private void MyColor(Color _color = Color.magenta) { } 이런식으로 기본값을 넣을려하면 컴파일타입 상수가 아니라면서 오류를 낸다. public GraphicsLine(Point startPoint, Point endPoint, Color? color = null, double width = 1.0) { StartPoint = startPoint; EndPoint = endPoint; Color = color ?? Colors.Black; Width = width; } 해결법은 이런식으로 작성하면 된다. 출처 : https://minecode.tistory.com/65 여기서 나오는 ?연산자와 ??연산자에대한 설명은 C# ..

Unity/C# 2022. 1. 26. 13:43[Unity] 카메라 장애물 회피

요런기능을 말함 필요한 변수와 함수 public float cameraSphereRadius = 0.2f; public float cameraCollisionOffset = 0.2f; public float maximunCollisionOffest = 2.2f; private void HandleCameraCollision(float maxDistance, Vector3 startPos) { targetPos = 0f; RaycastHit hit; Vector3 dir = (transform.position - startPos).normalized; Debug.DrawLine(startPos, startPos + dir * maxDistance, Color.red, 0.5f); if(Physics.Sph..

Unity/C# 2022. 1. 21. 10:43Unity ParticleSystem Trigger모듈

Unity - Manual: Triggers module docs.unity3d.com 트리거모듈은 Collision모듈과는 달리 월드객체랑 충돌감지를 할수없다. 저 리스트에 들어간 객체만 가능하다. 대신 보이는것처럼 Inside, Outside, Enter, Exit 4가지 경우의 콜백을 받을 수있다. 위에 링크된 유니티 Docs를 보면 알수있듯이 OnParticleTrigger()에서 트리거에 닿은 각 파티클들의 포지션을 알아낼수있다. 이 포지션에서 Physics.OverlapSphere() 같은 함수로 내가 원하는 오브젝트와도 닿았는지 확인할 수 있다. 위와같은 스킬에 사용했다. 박스 트리거를 두고 그곳에 원하는 파티클이 닿으면 파티클의 위치에서 OverlapSphere()로 근처에 원하는 객체가 ..

Unity/C# 2022. 1. 17. 10:45[C#] params 가변인자 매개변수

출처: https://blockdmask.tistory.com/317 [개발자 지망생] [C#] params 가변인자 매개변수에 대해서. 안녕하세요. BlockDMask 입니다. 오늘은 가변인자 매개변수 params 키워드에 대해서 알아보도록 하겠습니다. 날씨가 오락가락하네요. 1. C# params 가변 인자 매개변수란? ▼ C# params 설명과 기능 : 우리가 함수.. blockdmask.tistory.com 안녕하세요. BlockDMask 입니다. 오늘은 가변인자 매개변수 params 키워드에 대해서 알아보도록 하겠습니다. 날씨가 오락가락하네요. 1. C# params 가변 인자 매개변수란? ▼ C# params 설명과 기능 : 우리가 함수의 매개변수를 넘길때 1,2,3개 이렇게 개수를 지정해주..

Unity 3D 모바일 터치이펙트 만들기
Unity/C# 2021. 12. 8. 11:45Unity 3D 모바일 터치이펙트 만들기

2D게임에서는 터치이펙트를 만드는게 간단하고 참고자료도 많지만 3D게임에 적용할려니 Perspective카메라에선 2D에서 쓰는방식인 Camera.main.ScreenToWorldPoint(Input.mousePosition)로는 안되고 움직이고 회전하는 카메라에대해서는 더더욱 복잡해진다. 찾고찾다가 똑같은 경우를 발견하지 못해서 결국 선택한 방법은 유니티UI에서는 파티클을 쓸수없기 때문에 UI Extensions 패키지를 사용해 UI파티클을 사용할수있게 세팅하고, 터치포지션을 캔버스안에 UI의 Anchored포지션으로 변환해서 캔버스 자식에 둔 터치 이펙트를 UI상에서 움직인후 플레이 시켜줬다. 터치 이펙트용 캔버스는 따로 뒀고 모든씬에 있어야 하기때문에 DonDestroyOnLoad로 등록시켜줬다 그..

Unity/C# 2021. 11. 9. 10:17async콜백 안에서 Unity API 사용하기

전에 비동기 세이브, 로드 제작기에서 async콜백 안에서는 UnityEngine API속에있는 함수들을 사용하면 async에서 에러없이 팅겨져 나온다고 작성했었다. 비동기 세이브, 로드 제작기 이번에 세이브, 로드 시스템을 구현을했다. 전체를 혼자 구현한건아니고 바이너리화와 암호화는 유니티 에셋스토어의 무료에셋을 사용했다. 설명대로 잘 적용했는데 해보니 막상 아쉬운게 단일스레드였다. 익히 아.. trialdeveloper.tistory.com 그래서 나름 꼼수를 써가며 피해갔었는데 어떻게해도 aysnc안에서 그 타이밍에 호출을 해야할 경우가 생기기 마련이다. 그래서 검색을 좀 해보니 public class MainThreadWorker : MonoBehaviour { // singleton patter..

image