'분류 전체보기'에 해당되는 글 495건

  1. 2014.06.01 NGUI free 버전 2.7
  2. 2014.05.29 유니티 내에서 시간 표시하기 00:00 형식
  3. 2014.05.27 유니티 카메라에 따른 해상도 관련
  4. 2014.05.27 유니티 리소스 관리 법
  5. 2014.05.26 유니티 현재 실행중인 애니메이션 상태 받아오기
  6. 2014.05.26 유한상태기계 예 스크립트(몬스터 관련) (1)
  7. 2014.05.26 총알의 입사각을 구해서 반대편으로 이펙트 효과 나오게하기
  8. 2014.05.26 유니티 빈 게임 오브젝트 화면에 표시하기.
  9. 2014.05.26 처리 속도가 빠른 Collider
  10. 2014.05.26 유니티 충돌을 감지할때 필수 조건

NGUI free 버전 2.7

|

http://www.tasharen.com/?page_id=140


버전은 2.7이고


워터마크가 없는 것 같습니다.


공부하시는 분들이나 개인적으로 개발하시는 분들한테 좋겠네요.

저는 지금 3.x 버전을 쓰고 있지만 2.7버전도 훌륭합니다.

모두 수고하세요





ngui270.z01


ngui270.zip


Trackback 0 And Comment 0

유니티 내에서 시간 표시하기 00:00 형식

|

ToString 를 사용하면 시간이 00.00 형식으로 나온다.
이 형식을 사용해서 Replace 를 사용하면 점(.) 을 : 로 변경할수있다.
결국 최종 결과물은 00:00 형식으로 나온다.


Trackback 0 And Comment 0

유니티 카메라에 따른 해상도 관련

|

Quad나 Cube 같은 경우 스케일이 1이다.

카메라를 2D 카메라로 놓고(Orthographic) Size를 5로 놓으면

양 사이드는 10 * 10 이된다. 결국 큐브가 가로로 10개 세로로 10개씩 들어가는 사이즈가 된다는 것이다 카메라에 큐브를 모두 채울려면 100개의 큐브가 필요하다.

그리고 카메라의 포지션이 0,0,0 이라고 가정하면 각각의 큐브의 포지션은 가운데 좌표이므로 

가로의 처음 포지션은 -4.5( 큐브의 사이즈 /2 를뺀값) 그리고 마지막 포지션은 4.5가 된다.







각각의 offset 값을 잘 생각하고 코딩해보자.


'유니티 > Note' 카테고리의 다른 글

유니티 메모리 풀 사용시 주의점  (0) 2014.06.02
NGUI free 버전 2.7  (0) 2014.06.01
유니티 카메라에 따른 해상도 관련  (0) 2014.05.27
유니티 리소스 관리 법  (0) 2014.05.27
처리 속도가 빠른 Collider  (0) 2014.05.26
GetComponent 사용법  (0) 2014.05.26
Trackback 0 And Comment 0

유니티 리소스 관리 법

|

유니티내에서 리소스를 관리하기 위한 방법 소개.

프로젝트 뷰에 모든 리소스( 스크립트, 씬, 프리팹. 등등)들이 있습니다. 이것들을 보기 좋게 관리하기 위해서는

폴더별로 관리하는게 좋습니다.

아래 그림처럼 폴더를 만들어 리소스를 관리하면 편합니다.



1번은 씬을 저장합니다.

2번은 스크립트를 저장합니다.

3번은 프리팹을 저장합니다.

4번은 텍스쳐이미지 및 매트리얼을 저장합니다.

5번은 3D 관련 모델들을 저장합니다.

6번은 오디오 파일을 저장합니다.

Resources 폴더는 동적으로 그림파일을 로드하거나 다른 이미지등을 로드할때 사용합니다.

->유니티 함수 Resources.Load 사용시

이 외에도 Edit 폴더나 플러그인 폴더는 필요에 따라 만들어줍시다.


'유니티 > Note' 카테고리의 다른 글

NGUI free 버전 2.7  (0) 2014.06.01
유니티 카메라에 따른 해상도 관련  (0) 2014.05.27
유니티 리소스 관리 법  (0) 2014.05.27
처리 속도가 빠른 Collider  (0) 2014.05.26
GetComponent 사용법  (0) 2014.05.26
쉽게 에셋스토어 접속하기  (0) 2014.05.25
Trackback 0 And Comment 0

유니티 현재 실행중인 애니메이션 상태 받아오기

|


현재 수행중인 State 는 GetCurrentAnimatorStateInfo(int layerIndex)를 이용해 가져올수 있고
Animator의 모든 객체는 Hash를 이용해 접근 가능하다.

StringToHash 에 전달하는 인자는 "레이어 이름 + 점(dot) + 스테이트 이름" 규칙을 가지고 있다.


StringToHash는 반환값으로 int 형을 반환한다.->해쉬테이블에서 찾아서 반환해주므로
Start 함수에서 미리 값을 받고 비교해주는게 최적화에 도움이 된다.

ex)

int hashGoHit = 0;
void Start()
{
hashGoHit = Animator.StringToHash("Base Layer.gothit");
}

void Update()
{
  if(animator.GetCurrentAnimatorStateInfo(0).nameHash == hashGoHit)
  {
    // 처리구문.
  }
}


Trackback 0 And Comment 0

유한상태기계 예 스크립트(몬스터 관련)

|

유니티를 사용할때 유한상태기계(FSM) 기법을 많이 사용한다.
유니티 자체에 제공하는 애니메이션 시스템도 유한상태기계를 사용하고 있어서 코딩을 할때도 이 기법을 사용하면 관리하기 편하다.

enum 으로 몬스터의 상태를 설정해주고
각 상태를 체크 해주며, 특정조건에 따라 상태를 변경 시켜준다.
여기선 코루틴을 사용하여 0.2초마다 몬스터의 상태를 체크해주어서 최적화를 시켜주었다.( 코루틴을 사용하지 않으면 매 프레임마다
체크를 하므로 성능이 저하될 우려가 있음.) 

대강 흐름도는 이렇다.

void Start () 
{
StartCoroutine(this.CheckMonsterState());
StartCoroutine(this.MonsterAction());
}

CheckMonstState 에서는 0.2초 간격으로 몬스터의 상태를 체크해준다.

플레이어와의 거리가 공격사정거리보다 가까우면 -> 몬스터의 상태를 공격상태로 변경하고
플레이어와의 거리가 추적사정거리보다 가까우면 -> 몬스터의 상태를 추적상태로 변경한다.
그것도 아니라면 몬스터의 상태를 idle 상태로 변경한다.

MonstAction 에서는 switch 에서 각각의 상태에 따라 추적을 중지하거나 추적을 시작한다.





Trackback 0 And Comment 1
  1. Favicon of http://m.openwiki.kr/game/gta/gta_5 BlogIcon dryoo 2015.05.25 11:36 address edit & del reply

    감사합니다. ^

총알의 입사각을 구해서 반대편으로 이펙트 효과 나오게하기

|


입사 각도이 반대 벡터는 벡터의 빼기 연산으로 산출함( 발사 원점 벡터 - 충돌 지점 벡터) -> 충돌 지점에서 발사 원점을 바라보는 벡터가됨

입사각 = 충돌지점 - 발사원점
반대각 = 발사원점 - 충돌지점


 

-------->

(발사원점)ㅁ                ㅁ(충돌지점)

                <-------


//입사각도의 반대 벡터 = 발사 원점 - 충돌지점

Vector3 relativePos = firePos - coll.transform.position;


입사각, 반사각, 법선벡터


당구게임에서 당구공이 벽에 충돌해 반대쪽으로 튕겨나가는 로직에 필요한것이 반사각이다.

반사각을 구하기 위해서는 입사각가 법선벡터가 필요함

입사각 = 충돌지점 - 출발지점

반사각 = Vector3.Reflect(입사각, 법선벡터) fh rngkftndlTdma


Vector3 incomingVector = coll.transform.position - firePos ;  //입사각

Vector3 inverseVector = - incomingVector; //입사각의 반대각

Vector3 normalVector= coll.contacts[0].normal; //법선벡터

Vector3 reflectVector = Vector3.Reflect(incomingVector, normalVector); //반사각




Trackback 0 And Comment 0

유니티 빈 게임 오브젝트 화면에 표시하기.

|

2가지 방법이 있습니다.

코딩으로 표시하기 및 인스펙터에있는 기즈모 옵션으로 표시하는 것입니다.


빈게임 오브젝트에 다음 스크립트를 작성하면 기즈모를 표시할수있습니다.








Trackback 0 And Comment 0

처리 속도가 빠른 Collider

|

유니티로 게임을 제작할때 퍼포먼스에 신경을쓰일때가 많다.

collider 에도 처리속도가 각각 다르다


Sphere Collider > Capsule Collider > Box Collider 순으로 처리속도가 빠르다.

'유니티 > Note' 카테고리의 다른 글

유니티 카메라에 따른 해상도 관련  (0) 2014.05.27
유니티 리소스 관리 법  (0) 2014.05.27
처리 속도가 빠른 Collider  (0) 2014.05.26
GetComponent 사용법  (0) 2014.05.26
쉽게 에셋스토어 접속하기  (0) 2014.05.25
youtube 관련 동영상 정리  (0) 2014.05.23
Trackback 0 And Comment 0

유니티 충돌을 감지할때 필수 조건

|

- 충돌을 일으키는 양쪽 게임오브젝트는 반드시 모두 collider 컴포넌트가 추가돼 있어야 한다

- 두 게임오브젝트 중 움직이는 쪽에는 반드시 Rigidbody 컴포넌트가 있어야 한다.


Trackback 0 And Comment 0