알고리즘 코드카타
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> solution(vector<string> strings, int n) {
vector<string> answer = strings;
sort(answer.begin(), answer.end(), [n](string a, string b) {
if (a[n] == b[n])
if (a > b) return false;
else return true;
if (a[n] > b[n]) return false;
else return true;
});
return answer;
}
string끼리 사전순으로 비교하고 싶다면 string사이에 부등호만 넣으면 된다!
그냥 부등호 넣어볼까? 했는데 돼서 너무 신기..
string a = "ABCD", b = "EFG";
if (a > b)
return true;
https://school.programmers.co.kr/learn/courses/30/lessons/12915
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Unity 게임 개발 입문 시작
Rigidbody 2D에서의 Material은 Physics Material - 실질, 물질적인 재질
Physics Material 2D
- Friction: 미끄러짐, 번들거림 정도
- Bounciness: 반사의 정도
인스펙터 - Header 사용
[Header("Ball")]
public Ball ball;
Pixel Per Unit (PPU)
- 1 Unit(Unity 단위)안에 몇개의 픽셀이 들어오게 할 거냐
- 기본 Square 또는 Cube(3D)가 1Unit
-> 이미지를 크게하려면 PPU를 작게, PPU가 높으면 고해상도
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical");
GetAxisRaw
- 0, 1, -1 값만 줌, Smoothing값 X
- 동일한 속도로만 움직일 수 있게 함
float x = Input.GetAxisRaw("Horizontal");
float y = Input.GetAxisRaw("Vertical");
?: Null이 아닐때만 동작하겠다.
event: 외부에서 호출하지 못하게 막아주겠다.
public event Action<Vector2> OnMoveEvent; // Action: 값 반환X 델리게이트
public void CallMoveEvent(Vector2 direction)
{
OnMoveEvent?.Invoke(direction);
}
Input System
패키지 매니저에서 설치 후 사용
Input - Send Message 방식
만들어 놓은 Actions(Move, Look, Fire) 앞에 On을 붙이면
이 액션이 실행될 때 이 함수를 실행하겠다는 뜻이다.
public void OnMove(InputValue value) {...}
- OnMove, OnLook 등의 메서드가 있으면 실행 시켜주겠다.
// send Message 방식
// 옵저버 패턴
// Move가 일어날 때 구독자들에게(callmoveevent) 알려줌
public void OnMove(InputValue value)
{
Vector2 moveInput = value.Get<Vector2>().normalized;
CallMoveEvent(moveInput);
}
public void OnLook(InputValue value)
{
// 마우스 position을 받아옴
Vector2 newAim = value.Get<Vector2>();
// 마우스 좌표(UI, screen 좌표)를 월드 좌표로 변환
// worldPos: 마우스의 월드상 포지션
Vector2 worldPos = _camera.ScreenToWorldPoint(newAim);
// 월드 좌표에서 Player 좌표를 빼면
// 월드 좌표로 향하는 값이 나옴 - 크기는 좌표를 뺀 만큼
// 그 크기를 normalized를 통해 단위 벡터 - 방향 벡터로 만들어줌
newAim = (worldPos - (Vector2)transform.position).normalized;
// magnitude - 3D에서 문제 -> 속도 관련
if (newAim.magnitude >= .9f)
CallLookEvent(newAim);
}
옵저버 패턴(구독)
private TopDownCharacterController _controller;
...
_controller.OnAttackEvent += OnShoot;
_controller.OnLookEvent += OnAim;
...
오늘 하루 회고
오늘은 새로운 팀과 만나는 날이었다.
너무 유익한 내용을 많이 안 날..
'내일배움캠프(Unity)' 카테고리의 다른 글
내일배움캠프 게임개발(Unity) 22일차 231128 TIL (2) | 2023.11.28 |
---|---|
내일배움캠프 게임개발(Unity) 21일차 231127 TIL (3) | 2023.11.27 |
내일배움캠프 게임개발(Unity) 19일차 231123 TIL (2) | 2023.11.23 |
내일배움캠프 게임개발(Unity) 18일차 231122 TIL (2) | 2023.11.22 |
내일배움캠프 게임개발(Unity) 17일차 231121 TIL (1) | 2023.11.21 |