728x90

분류 전체보기 270

게임 시점

게임의 분위기를 많이 좌우하는 요소 중 하나인 게임 시점에 관한 내용입니다 게임의 시점은 크게 1인칭 시점과 3인칭 시점이 있습니다. 1인칭 시점은 보통 FPS 게임을 통해 많이 접하게 됩니다. FPS 라는 용어 자체가 First-Persot-Shooter 의 약자로 말그대로 1인칭 슈팅게임이라는 뜻입니다. 일반적으로 1인칭 게임은 게임에 좀 더 몰입할 수 있게 만들어주고 분위기를 극대화할 수 있다는 점이 매력적입니다. 예를들어 좀비 생존게임은 1인칭으로 만들면 시야가 제한되어 더욱 공포스러운 분위기를 극대화할 수 있겠습니다. 3인칭 시점은 일반적으로 탑뷰, 쿼터뷰, 숄더뷰, 사이드뷰 로 구분됩니다. 탑뷰는 하늘 위에서 맵을 원근감 없이 보는 뷰를 말합니다. 일반적으로 탄막 슈팅게임 등에서 많이 등장합니..

Unity 2023.11.10

백준 2003 <수들의 합 2> Python

https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 백준 2230 https://www.acmicpc.net/problem/2230 2230번: 수 고르기 N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우 dev-diary-0717.tistory.com 전형적인 투포인터 문제로 2230 ..

백준 1644 <소수의 연속합> Python

https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 소수 / 누적합 / 투포인터를 결합한 문제입니다. 소수 리스트를 만들 때 최적의 수로 만들지 않으면 시간이 부족했습니다. def solution(N): # 소수 리스트 만들기 # 0 은 누적합 만들기 쉽게 하려고 붙임 prime_list = [0] + find_prime(N) # 소수 리스트 누적합 리스트 만들기 subsum_prime = make_subsum(prime_list) # 투포인터 start = 0 end = 1 # 경우의 수 cnt = 0 while True: # end 가 인덱스를 넘어가면 끝 if ..

transform.position 와 rigidbody.position 의 차이

Unity 에서 Object 를 원하는 방향으로 이동시킬때 transform.position 이나 rigidbody.position 을 사용하곤 합니다. 언뜻 보면 작동 방식이 같은 것 같지만 어떤 차이가 있어서 분리해놨는지 알아보겠습니다. transform.position 은 이동 후 모든 콜라이더가 리지드바디를 기준으로 위치를 다시 계산합니다. 하지만 rigidbody.position 은 다음에 있을 물리 시뮬레이션 이후에 변환이 업데이트 됩니다. 출처 : https://docs.unity3d.com/ScriptReference/Rigidbody-position.html 정리하자면 transform.position 은 위치 변환 -> 위치 계산 -> 물리현상 계산 의 과정을 거치지만 rigidbody..

Unity 2023.11.09

백준 2668 <숫자고르기> Python

https://www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net 투포인터와 누적합을 같이 사용하면 쉽게 풀 수 있습니다. 누적합 리스트를 만든 뒤 백준 2230 https://www.acmicpc.net/problem/2230 2230번: 수 고르기 N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우 dev-diary-0717.t..

백준 2230 <수 고르기> Python

https://www.acmicpc.net/problem/2230 2230번: 수 고르기 N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오. 예를 들어 www.acmicpc.net 전형적인 투포인터 문제입니다. 두 포인터의 차이가 목표보다 크면 하위 포인터를 옮겨 차이를 줄이고 목표보다 작으면 상위 포인터를 옮겨 차이를 늘리면서 최소 길이를 비교해나갑니다. def solution(N, M, data_list): # 정렬 data_list = sorted(data_list) # 차이의 최솟값 min_sub = 2000000000 # 투포인터 left = 0..

Instantiate

Instantiate 개념 Object를 인스턴스화해서 복제하는 명령어입니다. 일반적으로 프리팹을 복제해 인스턴트화 할 때 많이 사용합니다. 함수 public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent); 의 형태를 띄며 Object original 을 제외한 인자는 필요할 때 사용하시면 됩니다. original An existing object that you want to make a copy of. : 일반적으로 복제하고자 하는 prefab 입니다. position Position for the new object. : 새로 생성될 개체의 위치입니다. rotation..

Unity 2023.11.09

백준 2217 <로프> Python

https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 가장 작은 로프를 제외하며 계산하면 쉽게 풀 수 있다. def solution(N, data_list): # 리스트 정렬 data_list = sorted(data_list) # 최댓값 max_value = 0 # 정렬 후 낮은 밧줄부터 제거하면서 비교 # 중간값만 빼볼 필요는 없음 for idx in range(N): # 제일 낮은 값 X 밧줄 수 value_sum = data_list..

백준 1026 <보물> Python

https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net B 를 정렬하면 안된다는 조건이 까다로웠다. A를 B로 정렬하는 방법을 찾는다면 풀 수 있다. def solution(N, A, B): # 리스트 정렬 A = sorted(A) # A를 정렬한 인덱스 리스트와 와 B 를 병합 A_index_list = list(range(N)) A_index_list = zip(A_index_list, B) # B 에 따라 A_index_list 를 정렬 ..

PlayerPrefs (플레이어 프리팹)

PlayerPrefs 개념 유니티에서 제공하는 데이터 저장 방법 중 하나입니다. PlayerPrefs 는 쌍으로 데이터를 저장합니다. Value 는 int, float, string 타입의 데이터를 저장할 수 있으며 Key 값은 string 으로 저장됩니다. 함수 PlayerPrefs 는 데이터를 우선 메모리상에 저장하고 이를 하드드라이브에 저장합니다. PlayerPrefs 의 Save() 함수는 메모리상에 저장 된 데이터를 하드드라이브에 저장해줍니다. DeleteAll() : 데이터를 모두 삭제합니다. HasKey(String) : Key 중 [String] 이 존재하는지 확인합니다. DeleteKey(String) : Key에 대응하는 값을 삭제합니다. Save() : 모든 값을 저장합니다. SetI..

Unity 2023.11.07
728x90