일단 로봇의 공격으로 플레이어가 대미지를 입는 과정을 보도록 하자.
플레이어의 컴포넌트 속성들은 지금까지의 프로그래밍 과정을 통해 상당히 인프라가 구축되어 있을것이므로
RocketScript.sc에서 OnCollisionEnter(Collision collision)함수에 다음과 같은 내용을 추가하기만 하면 끝이다.
대미지 구현은 적의 무기인 로켓에서 하던지, 플레이어쪽 클래스에서 하던지 상관은 없는데 나는 로켓쪽에서 처리했다.
if(collision.transform.tag=="Player"){
Camera.mainCamera.GetComponent<HealthScript>().CurrentHealth-=10;
}
..정말 간단하다.
그런데 플레이어만 대미지를 입는건 뭔가 불공평하다.
이제 플레이어의 공격으로 로봇도 대미지를 입도록 해보겠다!!!
적군측 통제 스크립트인 RobotScript.sc를 열자.
//변수 지정 New Challenger
public int Health = 10;
void OnCollisionEnter(Collision collision){
if(collision.transform.tag=="Bullet"){
Camera.mainCamera.GetComponent<ScoreScript>().CurrentScore+=20;
Health-=1;
if(Health<0)
Destroy(gameObject);
}
아마 이 프로젝트를 만들면서 가장 긴 줄을 가진 스크립트일텐데..
이제 끝났다.. 제일 아랫쪽에 충돌 함수만 추가해주면 이로써 기나긴 FPS 만들기는 끝이 난거다ㅠㅠ
그동안 만들면서 생각지도 못한 버그, 세이브 날아감 등등으로 고생했지만 흑흑..
이제 프리팹을 무한 생성해서 이런저런 장난질만 하면 된다..
태그 속성을 달리 줘서 총알을 튕겨내는 적이라던지.. 여러가지 만들 수 있다.
'Unity3D' 카테고리의 다른 글
유니티 버그 노트 (0) | 2013.11.09 |
---|---|
총알을 장전하는 시스템 추가하기 (0) | 2013.10.07 |
플레이어를 발견하고 공격하는 적군 (0) | 2013.07.03 |
적 패트롤 행동넣기 (0) | 2013.07.03 |
총알이 충돌되는 객체로 점수 올리기 (0) | 2013.07.02 |