본문 바로가기

Unity/Unity 기타

(30)
UnityC# - 형식매개변수 T 1.형식매개변수 함수사용 - where T: 로 class 혹은 struct 등과 같이 T에 올 수 있는 형식의 제한을 둘 수 있음 2.형식매개변수 클래스 사용
UnityC# - 추상클래스, 인터페이스 참조 : see-ro-e.tistory.com/137[C# 때려잡기] C# 강의 32. 추상클래스와 인터페이스1. 추상클래스 weapon이놈은 사실 상속을 위해서만 만들어놓은 놈이고 new weapon이나 Weapon w; 이런식으로 웨폰 객체를 만들일은 없다. 그런데도 불구하고 attack 함수를 구현할 필요는 없다. 그래서 내see-ro-e.tistory.com 1. 추상클래스와 인터페이스 - 추상클래스 - 인터페이스 - 추상클래스와 인터페이스를 상속받은 클래스
UnityC# - 컬렉션, 구조체 1.컬렉션(큐, 스택, 해쉬테이블, 딕셔너리) 2.구조체 2-1.구조체와 클래스의 차이
Unity - 싱글톤패턴 - 일반적으로 Java나 코틀린등 타언어들과 같이 C#에서 클래스객체를 생성할때는 프로그램이 실행되는 메인함수안에 new NewClass();을 코드로 작성하고 이를 실행하는 것으로 NewClass라는 클래스객체를 생성한다 하지만 유니티엔진에서 클래스객체를 생성할때는 위와 같은 방식으로 객체를 생성할 수 있는것은 당연하고 추가로 하이라키창에 임의의 오브젝트를 생성하고 해당 오브젝트의 컴포넌트에 NewClass라는 스크립트를 붙여주는 방식 으로도 객체생성이 가능하게 된다 즉, NewClass라는 C#스크립트를 컴포넌트로 가진 임의의 오브젝트는 우리가 유니티 엔진상에서 눈으로 볼 수 있는 메모리구조의 힙영역에 생성된 가시화된 객체인 것이다. C#에서는 new 클래스명();과 같은 코드상의 객체 생성외에는 달..
Unity - C# List정리 tenlie10.tistory.com/155 [C#] List 주요 함수 정리 출처 http://www.csharp-examples.net 생성자 var list = new List (); list : (empty) var listA = new List () {3, 2, 1}; listA : 3, 2, 1 var list = new List (listA); listB : 3, 2, 1 var list = new Lis.. tenlie10.tistory.com 참조
Unity3D- FieldOfView 시야구현(최종) 1.예외처리하기 지금까지 방식으로는 이전의 Ray와 바로 다음의 Ray 둘중 하나가 방해물에 충돌하지 않았을 경우에만 FindEdge()함수를 실행시켰다 하지만 아래경우와 같이 서로 다른 방해물에 각각의 Ray가 충돌한 경우에도 FindEdge()함수를 실행시켜 사각의 시야를 없애주고싶다 따라서 FindEdge()함수의 실행조건을 추가해준다 - 우리가 원하는 것은 일종의 거리 임계 값을 구현하는 것 -DrawFieldOfView() 함수내부 - FindEdge()함수 내부 - EdgeDstTreshold를 0.8로 주었을때 결과 => 2개의 Ray가 모두 방해물에 맞은 경우에도 FindEdge()함수를 실행하여 시야각을 넓혔다 2. FindEdge()함수 로직 변경 지금까지 기존의 이전의 Ray와 바로 ..
Unity3D- fieldOfView 시야구현(3) 0.최적화방법으로 방해물 뒷시야 사각지대 없애기 1) 현재 방식 및 문제발생 - 현재까지 방법은 발사된 Ray가 방해물에 충돌한 지점과 Mesh해상도에 따라 변하는 일정한 조각각도단위로 다음순번에 발사된 Ray가 방해물에 충돌하지 않고 시야각의 가장자리까지 나아간 지점을 커스텀메쉬화 하여 삼각형을 그리는 방식이다 - 이러한 방식으로 최대한 방해물 뒤의 사각지대를 없애기 위해서는 아래 씬뷰2 처럼 Mesh해상도를 늘려 많은 Ray를 발사해야하만 한다, 다만 그럴 수록 최적화와는 멀어지게 된다 2) 문제해결방안 - 1번 그림처럼 낮은 해상도로 적은 Ray를 발사하여 방해물 뒤 사각지대를 없애기 위해서 먼저 방해물에 충돌한 Ray(씬뷰3, 2번 Ray)가 있고 이 바로 다음순번 Ray(씬뷰3, 3번 Ray)가..
Unity3D- FieldOfView 시야구현(2) 1. 플레이어 시야각 가시화 하기 - FieldOfView 스크립트 - 총시야각을 stepCount 수로 등분하고 - 하나의 조각시야각을 stepAngleSize로 지정 - 총시야각을 stepAngleSize만큼 나누어 Ray를 그린다 *4/06 수정 1).ex) 해상도=0.1, 총시야각 =60도 --->등분수stepCount =10등분 => 등분수steopCount = 6분등 으로 수정 2).ex) 등분수=10등분 ---> 한조각 각도stepAngleSize =6도 => 등분수=6등분 ---> 한조각 각도stepAngleSize=10도 3).for(int i=0; i for(int i=0; i Material을 하나 생성하여 상단의 Rendering Mode를 fade모드로 바꿔주고 흰색의 투명한 재질..