상세 컨텐츠

본문 제목

첫번째 프로그램. RVC ( Rolling Virtual Creatures ) _ 02

HEAP_Project/Develope

by hwano 2014. 5. 27. 18:48

본문

앞에서 이어서 계속,

 

씬 : 02_Rolling  ( 경주 라인을 굴러가도록 만들어보자. ) 

 

 

씬 01에서 만든 오브젝트를 씬 02으로 가져오자.

 

앞에서 얘기한데로 프리팹은 계층구조를 지원하지 않기 때문에 현재의 RVC_Manager구조를 조금 바꿀 필요가

있겠다. 

 

위처럼 하위의 바디 이름을 다 가져오지 말고 서로 경주를 펼칠 virtual creator들 5마리의

최상위 이름만 가져와서 하위의 body들은 script상에서 접근해야겠다.

 

if( Random_Button.HitTest( new Vector3( Input.mousePosition.x, Input.mousePosition.y, 0 ))){
    foreach( GameObject body in Bodys ){
     foreach( Transform child in body.transform ){
      print( child.name );
     }}}

 

자식들의 이름을 가져오는건 위와 같은 방법으로 하면됨.

 

--------------------------------------------------------------------------------------------------

이래저래 해서 다른건 다 해결 되었는데 또 엉뚱한데서 막혔다. 유니티는 기본적으로

mesh collider끼리의 충돌은 인식하지 않는다 한다..   제약이 무척 많다.

이러면 각 다리에 달린 도형들끼리는 충돌이 되지 않는다. 기본도형들로 바꿔야 할듯.

 

이런 구멍 많은 프로그램으로 어찌 상용화 되는 게임들을

제작하고 있는지 모르겠다.

--------------------------------------------------------------------------------------------------

 

 

 

시뮬레이션의 속도를 조절해 보자.

 

결과값을 얻어내기 위해서는 위와같은 시뮬레이션을 세대별로 반복해서 돌려야한다.  시뮬레이션

자체의 속도를 조절할 수 있는지 확인한다.

 

Time.timeScale으로 조절할 수 있다.   근데 속도를 빠르게 하면 잘 굴러가던 애들이

멈춰버린다.  timeScale이 다르면 피직스가 작동하는게 달라져버리는듯.  우선 토크값이

시간값에 따라 적용되는게 달라지는 거 일 수도 있으니 거기부터 확인.

 

 

결과값이 다르게 보였던 거는 계산되는 프레임 간격이 바뀌게 되면서 서로 간섭이 되면서 그렇단다

update()에 addTorque값을 넣었었는데 FixedUpdate()에 값을 넣어야 한다.

rigid body관련한 것들은 모두 이쪽에 넣어야 한다고 한다. 해보니 대략 원하는데로 시뮬레이션

스피드가 조절 되는것 같다.

 

 

 

 

각 도형들의 갯수를 받아오자.

 

각 도형들의 갯수를 받아 오고.  그걸 차트로 정리해서 generation마다의 누적치를 그래프로 확인

하도록 해야할듯,

 

 

 

Generation 구현.

 

Generation을 구현하고 각 mesh들의 갯수를 저장한다.

Generation마다 기록하는 값으로 virtual creature들이 골까지 가장 먼저 도달하는 값을 추가하자.

 

 

 

 

 

 

관련글 더보기