'유니티/스크립트'에 해당되는 글 123건

  1. 2014.02.04 반복되는 배경 만들기(무한 스크롤링) - 근경
  2. 2014.02.04 반복되는 배경 만들기(무한 스크롤링) - 원경 (6)
  3. 2014.02.03 글자 크기를 점점 커지게 하면서 사라지게 하기
  4. 2014.02.03 게임 매니저에서 FSM 으로 게임 분기 처리하기
  5. 2014.02.03 충돌 처리시 Tag 설정 값 파악하기
  6. 2014.02.03 Quaternion.LookRotation
  7. 2014.02.02 마우스 클릭한 방향으로 스무스하게 움직이게 하기
  8. 2014.02.02 마우스를 클릭한 방향을 바라보기
  9. 2014.02.02 [펌] 도망자 코드 3초마다 방향을 바꾸면서 도망감
  10. 2014.02.02 [펌] 1초마다 타겟을 찾아서 회전하는 스크립트

반복되는 배경 만들기(무한 스크롤링) - 근경

|

근거리 풍경에 해당되는 바닥을 만들어봅시다.

바닥같은 경우에 여러가지 형태가 존재할수있습니다. 쭉 일자로 뻗은 바닥

중간이 없는 바닥. 높이가 다른 바닥등등 총 5가지 바닥을 만들어보겠습니다.

만든 바닥은 프리팹으로 설정하여 무한으로 스크롤될시 생성과 제거를 반복해줍니다.


프리팹이란?

프리팹은 오브젝트를 별도의 메모리에 저장해 두고 필요시 복제해서 사용하는 개념입니다.


바닥타일같은경우 생긴 모양은 다르지만 그 길이는 일정합니다.

바닥을 만들어주는 스크립트는 CsGroundManager를 만들어줍시다.


생성 -> 이동 -> 삭제 가 계속해서 반복적으로 일어나며 무한 스크롤이 가능해집니다.


Quad를 사용해서 프리팹을 만들어보겠습니다.

A타입과 B타입을 만듭니다.


먼저 빈 게임 오브젝트를 만들고 Reset을 눌러 초기화 시켜줍니다. 이름은 A_Ground로 변경합니다.

마찬가지로 Quad를 생성하고 Reset을 누르고 초기화 시켜준후 이름을 A_Ground로 변경합니다. 위에 만든 A_Ground의 자식으로 놓습니다.

Quad의 위치값을 0, -5, -5 로 만들고 스케일은 25 , 10, 1 로 만듭니다. Box 콜라이더를 추가해주고 Z 사이즈를 10으로 만들어줍니다.

그리고 프리팹으로 만들어 줍니다.






마찬가지로 B_Ground 빈게임오브젝을 만들고 리셋 그리고 B_Ground로 변경하고

Quad 생성 위치를 -10, -5, -5 로 변경 스케일 5, 10, 1로 변경 하고 박스 콜라이더를 추가하고 z 값을 10으로 만들고

컨트롤 + D 로 오브젝트를 2번 더 복사해주고 각각 X의 위치값을 0, 10으로 만들어줍니다, 그럼 3개의 블록이 만들어지는데 이 3개의 블록을

위의 B_Ground의 자식으로 만들고 프리팹 해줍니다.









A와 B 프리팹을 가지고 땅을 만들고 삭제하는 스크립트를 만들겠습니다.



일단 최초 플레이어가 밟을수있는 땅을 미리 만들어 놓습니다.

이 땅은 Quad 로 생성하고 2개를 만들어줍니다. 

각 이름은 A_Ground 와 B_Ground이고 스케일 값은 30, 10, 1 입니다. 위치는 (-5,-5,-5 ) , (25,-5,-5)로 만들어줍니다.

그리고 각각 위에 처럼 박스 콜라이더를 추가하고 Z 값은 10으로 놓습니다.






빈게임 오브젝트를 만들고 GroundManager로 이름짓고 CsGroundManager 스크립트를 생성해주고 할당합니다.

그리고 위에 만든 A_Ground와 B_Ground를 자식으로 놓습니다.







CsGroundManager.cs의 내용입니다.







A_Type에는 히어라이키 탭에있는 그라운드를 넣어주고

Grounds 배열에는 프리팹을 넣어줍니다.










Trackback 0 And Comment 0

반복되는 배경 만들기(무한 스크롤링) - 원경

|

무한으로 반복되는 배경 만들기.

Offset를 조절해서 만든다.


배경을 만들때 원근감을 조절하기 위해서 시차스크롤링 기법을 사용한다.

근거리 배경과 원거리 배경의 속도를 달리해서 입체감을 높이는 기법이다.

원거리 배경의 속도는 늦게 , 근거리 배경의 속도는 빠르게 헤보자.


2D 게임을 개발 목적으로 

메인카메라는 Z값 -30 , size 8 , Orthographic로 맞춘다.




배경을 사용되는 오브젝트는 유니티 4.2 부터 생긴 Quad를 사용하자. 정점 개수가 4개인 아주 가벼운 오브젝트다. 2D 게임을 만들때 좋음.




하늘 관련 배경은 구글에서 검색해서 찾아보자. 구글에서 검색시 Sky Texture 등으로 검색하면 빨리 찾을수 있다.

앞으로 사용되는 이미지들은 모두 뒤에 Texture 등을 붙여서 검색해서 찾아보자. 필자는 Sky Sprite로 찾은 이미지중 마음에 드는 이미지 하나를 선택해서

적용 했다.








스케일 20,20,0

위 그림을 덮어씌어줬다.


스크립트를 작성해보자.

스크립트의 이름은 CsSky이다.








메트리얼의 Offset 값을 조절해서 구름의 메트리얼을 움직입니다.
잘보이게 Direction Light 하나 설치해줍니다.
위 스크립트를 Quad 에 붙여줍니다.

실행해봅시다.





Trackback 0 And Comment 6
  1. ch 2014.05.04 19:24 address edit & del reply

    무한 스크롤에 대한 질문이 있는데요;
    Texture 한바퀴 재생하고 나면 그다음부터 이미지가 뭉개지는데 원인이 뭘까요?ㅠ

    • Favicon of https://hyunity3d.tistory.com BlogIcon 히아레인 2014.05.19 08:11 신고 address edit & del

      저도 그런경우는 없어서 자세한 얘기는 해드릴수가 없네요

  2. yo 2014.08.21 11:11 address edit & del reply

    위아래로 스크롤은 어떻게하나요?

  3. k 2015.03.09 18:19 address edit & del reply

    머터리얼을 Sprites/default로 하면 offset이 변경이 안되는데 저만그런건가여? ㅠ

    • y 2015.03.12 08:52 address edit & del

      Sprites/default 메트리얼은 offset 가 없어요

글자 크기를 점점 커지게 하면서 사라지게 하기

|




히어라이키 탭에 "txtMsg" GUI text 생성 해야됨.



Trackback 0 And Comment 0

게임 매니저에서 FSM 으로 게임 분기 처리하기

|
각각의 스크립트가 게임 매니저와 동기를 유지하려면 게임의 상태를 표시하는 변수가 필요합니다. 보통 게임 매니저 스크립트의 위와 같이 변수들을 선언하고 업데이트 문에서 해당하는 변수에 따라 분기 처리를 하여 게임을 관리해줍니다.
Trackback 0 And Comment 0

충돌 처리시 Tag 설정 값 파악하기

|


C# 에서는 스위치 문에서도 string의 사용이 가능합니다.

충돌시 충돌하는 물체에 각각 Tag 값을 넣어서 구별을 할수 있습니다.

만약 


ENEMY, BONUS 등 태그값을 구분하려면 아래 처럼 하면 됩니다.

참고로 태그를 지정하지 않은 값들은 모두 Untagged 값을 가지는데 이것또한 태그값입니다.

마찬가지로 태그로 구별할수 있습니다.


void OnTriggerEnter(Collider coll){

switch(coll.tag)

{

case "ENEMY":

//충돌 처리 로직

break;

cae "BONUS":

//충돌 처리 로직

break;

case "Untagged"

//충돌 처리 로직 (태그값을 지정하지 않은 물체)

break;

    }

}


OnTriggerEnter 는 두 물체 중에 하나가 isTrigger 속성이 On으로 설정이 되어야 하며 두물체중 하나는 리지드바디가 추가되어야 발동되는

함수입니다.


Trackback 0 And Comment 0

Quaternion.LookRotation

|

두 점 사이의 각도를 계산할때 사용하는 API 함수

static Quaternion LookRotation(Vector3 forward, Vector3 upwards = Vector3.up);


forward는 바라보는 물체 

upwards는 기본값이 Vector3.up으로 정의되있음.






Quaternion.LookRotation

static Quaternion LookRotation(Vector3 forwardVector3 upwards = Vector3.up);
Parameters

forwardThe direction to look in.
upwardsThe vector that defines in which direction up is.
Description

Creates a rotation with the specified forward and upwards directions.

Returns the computed quaternion. If used to orient a Transform, the Z axis will be aligned with forward and the Y axis withupwards if these vectors are orthogonal. Logs an error if the forward direction is zero.
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    public Transform target;
    void Update() {
        Vector3 relativePos = target.position - transform.position;
        Quaternion rotation = Quaternion.LookRotation(relativePos);
        transform.rotation = rotation;
    }
}
See Also: SetLookRotation.


Trackback 0 And Comment 0

마우스 클릭한 방향으로 스무스하게 움직이게 하기

|

카메라와 캐릭터 사이의 간격 10임



Trackback 0 And Comment 0

마우스를 클릭한 방향을 바라보기

|

z는 마우스와 플레이어와의 간격이다.


Trackback 0 And Comment 0

[펌] 도망자 코드 3초마다 방향을 바꾸면서 도망감

|
출처:http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_QnA_etc&no=2605
Trackback 0 And Comment 0

[펌] 1초마다 타겟을 찾아서 회전하는 스크립트

|
출처 : http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_QnA_etc&no=2605
Trackback 0 And Comment 0
prev | 1 | ··· | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ··· | 13 | next