7cf3c028e2f206a26d81f6e4468277654aaf



ํ˜„์žฌ ๊ฐ•์˜๋”ฐ๋ผ ํ•œ๊ฒƒ๋“ค:


์•ž๋’ค์ขŒ์šฐ ์ด๋™

๋งˆ์šฐ์Šค ํšŒ์ „์—๋”ฐ๋ฅธ ์นด๋ ˆ๋งˆ ํšŒ์ „

์—๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ



๋‚˜์ฒ˜๋Ÿผ 3D ์— ๊ด€์‹ฌ ๋งŽ์€ ๊ฐค๋Ÿผ๋“ค์€ ์–ธ๋ฆฌ์–ผ ์ธ„๋ผ์ด ๊ถŒ์žฅํ•ด


๋‚˜๋Š” ์‰์ด๋” ํ…์Šค์ฒ˜ ์ด๋Ÿฐ๊ฑฐ 1๋„ ๋ชจ๋ฅด๋Š”๋ฐ ๊ฑ ์บ๋ฆญ ์‹  ํ•˜๋‚˜ ok ๋ฒ„ํŠผ ๋ˆ„๋ฅด๊ณ  ์บ๋ฆญ ๋ฉ”์‰ฌ ๋“œ๋ž˜๊ทธ์•ค ๋“œ๋กญ ํ•ด์ฃผ๋‹ˆ ใ…ˆใ„ด ๋ฉ‹์žˆ๊ฒŒ ๋œ๊ฒƒ์ž„



ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์ธ ์–˜๊ธธํ•˜์ž๋ฉด


์œ ๋‹ˆํ‹ฐ์—์„œ๋Š” rigid body๋ฅผ ์“ธ์ง€, nav agent๋ฅผ ์“ธ์ง€, character controller๋ฅผ ์“ธ์ง€, position + ๋ฅผ ํ• ์ง€, translate์„ ํ• ์ง€



๋„ˆ๋ฌด ์ด๊ฒƒ์ €๊ฒƒ์ธ๋ฐ


๊ฐ ์ปดํฌ๋„ŒํŠธ๋งˆ๋‹ค ๋‹ค ๋‹ฌ๋ผ์„œ 3D ๋งŒ๋“ค๋• ์ด๊ฑธํ•˜๋ฉด ์ €๊ฒŒ ๋‚˜์‚ฌ๋น ์ ธ์žˆ๊ณ , ์ด๊ฑธ์“ฐ๋ฉด ์ €๊ฒŒ ๋‚˜์‚ฌ๋น ์ ธ ์žˆ์—ˆ์Œ


์ ํ”„, ๋ฐ”๋‹ฅ์— ์„œ์žˆ๋Š” ํŒ์ •๋„ ๋‚ด๊ฐ€๋‹ค ๊ตฌํ˜„ํ•˜๋Š”๊ฒŒ ใ…ˆใ„น ๋นก์ณค์Œ



๊ทผ๋ฐ ์–ธ๋ฆฌ์–ผ์€ Pawn ํด๋ž˜์Šค์™€ Character ํด๋ž˜์Šค์— ์ด๋ฏธ ๊ตฌํ˜„์ด ๋˜์žˆ๋”๋ผ๊ณ 


PlayerInputComponent->BindAxis("LookUpRate", this, &AShooterCharacter::LookUpAtRate);
ย ย  ย PlayerInputComponent->BindAxis("Turn", this, &APawn::AddControllerYawInput); // from inherited Pawn class
ย ย  ย PlayerInputComponent->BindAxis("LookUp", this, &APawn::AddControllerPitchInput); // from inherited Pawn class

ย ย  ย PlayerInputComponent->BindAction("Jump", IE_Pressed, this, &ACharacter::Jump); // from inherited Character class
ย ย  ย PlayerInputComponent->BindAction("Jump", IE_Released, this, &ACharacter::StopJumping);


์ด 5์ค„๋กœ ์‹œ์ ํšŒ์ „, ์ ํ”„ ๋‹ค ๊ตฌํ˜„๋ฌ์–ด


AddMovementInput(Direction, Value);


์ด ํ•œ์ค„๋กœ ์ด๋™ ๋‹ค ๋ฌ์–ด




์–ธ๋ฆฌ์–ผ์ด ๋ธ”๋ฃจํ”„๋ฆฐํŠธ์™€ c++์ด ๊ฐ™์ด ์žˆ์–ด์„œ ์ฒ˜์Œ์—” ์ง„์งœ ์ •์‹  ์—†์—ˆ๋Š”๋ฐ, ์ข€ ์ต์ˆ™ํ•ด์ง€๋‹ˆ


์–ธ๋ฆฌ์–ผ๋กœ ๊ตฌํ˜„ํ•˜๋Š”๊ฑด ๋ญ”๊ฐ€ ์ด๋ฏธ ์—ํ”ฝ๊ฒŒ์ž„์ฆˆ์—์„œ ๋‹ค ์™„์„ฑ ์‹œ์ผœ๋†“์€๊ฑธ ๊ทธ๋ƒฅ ๋‚ด๊ฐ€ ๊ฐ”๋‹ค ์“ฐ๋Š” ๋А๋‚Œ์ด๋„ค