낑깡의 게임 프로그래밍 도전기

2023년 8월 24일 목요일 ForceMode, Instantiate, 프로퍼티 본문

Unity C#

2023년 8월 24일 목요일 ForceMode, Instantiate, 프로퍼티

낑깡겜플밍 2023. 8. 24. 17:36
반응형

ForceMode는 뒤에 Force생략 가볍게 미는거

ForceMode.Impulse 순간적으로 미는거(딱콩)

 

대포날리기.

캐논에서 스크립트를 짜서 날릴때 환의 트랜스폰(위치)와 리지드바디 정보가 필요

 

해당 스트립트로 짜서 저 블렛obj에 블랫 드래드 드랍

블렛오브제의 켓컴포넌트해서 리지드바디넣어줌

 

bulletRb라는 이름의 RigidBody변수

 

자 이제 날렸으니 총알 위치를 맞추자

로테도 맞추어 총구방향과같게!

날리기 코드

블렛 오브제 위치를 내 위치로 바꾸자

 

빈 오브젝트로 블렛 위치를 맞춰보자(저 그룹화를 부모 자식 오브젝트라 하며 클래스와는 상관없음)
*부모의 영향으로 찌그러진 오브젝트(부모가 직사각형이라 영향을 받음)

영향을 안받게 하기 : 부모 껍데기 안에 넣기(검정색 직사각형은 모델링일 뿐)

이렇게 현재 부모 스케일이 111이라 변경 될일이 없다
부모 포지션의 상대적인 위치와 회전을 가진 오브젝트는 위에서 부모가 10,10, 0일때 오브제는 0,0,0이다. 트랜스폼을 출력하면 월드값기준이기 때문에 10,10,0으로 나옴. 로컬 포지션으로 하면 0,0,0나옴

 

자이제 포인트에 넣자

잊지말고 public 포인트오브제에 포인트를 끌어 넣자

 

자이제 복사해서 리필 환을 만들어 쏘자

복사 키워드는 Instantiate(복사할 게임 오브젝트);

복사하면 실행때 클론이 생기는데 속성도 다 가지고옴
날아가는 중인 환의 위치에 복사되지않게 고정 위치 복사를 해보자
나랑 부딪힌 놈을 겟컴포넌트해서 타겟이 있을때
게터세터를 C#에서는 프로퍼티라고한다
저기서 벨류값은 위의 Durability의 값으로 마치 변수마냥 쓰이는 중
부모가 리지드 바디를 가지고 있으면 자식도 그걸 상속해줘서 같이 총을 맞을 수 있다. 별도의 기능(테이크데미지 크기)를 주려면 자식에게도 리지드 바디를 생성하면 재정의 가능

반응형