달력

102024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

prefab(프리팹) 만들기



  • prefab(프리팹)의 용도
    • 프리팹은 같은 몬스터개체를 여러개 만들어 둬어야 하는경우.
    • FPS의 경우는 총알 사용시 프리팹을 이용해 복제하여 생성할 경우
    • 폭탄 같은걸로 벽돌 파괴시 벽돌이 따로따로 흩날리는 효과를 주기위한 경우
    • 즉, 무수히 같은 물체,개체를 인스턴스화 시킬 수 있게 하는것이 prefab(프리팹) 입니다.



  • prefab(프리팹)의 만들기

sphere을 이용하여 만들어보겠습니다.

Hierarchy화면에서 마우스 오른쪽 클릭 -> 3D Object -> Sphere 클릭

Project화면에서 Prefabs 폴더를 하나 만들어 주고 해당 Sphere를 그대로 드래그해 폴더에 옮겨 줍니다.


그럼 Hierarchy 화면에 있던 Sphere이 파란색 글자로 변경이 되면서 등록이 됩니다.


이게 prefab(프리팹) 만들기의 끝입니다.!


만들었으니 이제 사용해



  • prefab(프리팹)의 초 간단한 사용법

사용하기 위한 스크립트 Instantiate Test 이름으로 하나 만들어 주세요(다른 이름도 괜찮습니다.)


using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class InstantiateTest : MonoBehaviour {



    public GameObject bulletObj = null; // 담겨질 오브젝트 생성


void Start () {

}


void Update () {


        if(Input.GetKeyDown(KeyCode.Space)) // 스페이스바 클릭 조건

        {

    Instantiate(bulletObj, transform.position, transform.rotation);

            // Instantiate 메소드를 통한 초간단 인스턴스 생성!

        }


    }

}



위와 같이 작성 후

생성 위치가 될  Create Empty 하나 생성하고 해당 오브젝트에다가 스크립트를 적용 합니다.
그리고 오브젝트를 클릭해 보면 아래의 그림과 같이 Bullet Obj 라는 공간이 있는데 해당공간에 만들어둔 prefab을 드래그 합니다.
그럼 아래 화면과 같이 됩니다.



그리고 유니티 실행 후 스페이스바를 열심히 누르시면 열심히 누르신 만큼 Sphere가 생성이 됩니다!!

적용화면





Posted by JakeGD
|

거울반사(Mirror reflection) 효과 적용


카메라를 이용한 거울 반사 효과를 설명하도록 하겠습니다.


유니티 Hierarchy에서 카메라하나를 생성합니다.



거울 반사를 적용시킬 스크립트 하나 생성후 아래와 같은 코드를 작성합니다.


using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class RoomMirror : MonoBehaviour {


    private Camera CameraMirro;


    void Awake()

    {

        // 카메라컨포넌트를 조작하기위해 GetComponent를 이용하여 불러옵니다.

        CameraMirro = GetComponent<Camera>();

    }

// Use this for initialization

void Start () {

}

// Update is called once per frame

void Update () {

}


    public void OnPreCull()

    {

        CameraMirro.ResetProjectionMatrix();

        CameraMirro.projectionMatrix = CameraMirro.projectionMatrix * Matrix4x4.Scale(new Vector3(-1, 1, 1));

    }


    public void OnPreRender()

    {

        GL.invertCulling = true;

    }


    public void OnPostRender()

    {

        GL.invertCulling = false;

    }

}


그다음 유니티에서 해당 스크립트를 적용해주면 끝!


미적용


적용완료


Posted by JakeGD
|

게임오브젝트(GameObject)와 컴포넌트(Component) 관계 및 사용법




  • 관계
    • GameObject는 컨테이너 이며 사람, 차량 또는 물건등을 구성하는 다양한 조각들을 저장할수 있는 빈 상자이며 객체를 구성하는 다양한 조각들은 Components(컴포넌트)라고 합니다.
    • 사용할 오브젝트 종류에 따라 다양한 조각을 조합한 컴포넌트를 GameObject에 추가합니다.
    • 즉 GameObject는 커다란 큰 냄비이며 Components(컴포넌트)는 요리법을 구성하는 각종 재료라고 생각하면 됩니다.


  • 게임오브젝트(GameObject)
    • 다양한 컴포넌트들이 모인 것을 GameObject라고 함
    • GameObject에는 기본적으로 Transform 컴포넌트가 존재하며 GameObject가 어느 위치에 존재하는지 얼만큼 회전을 하고 있는지, 크기의 사이즈는 얼만큼인지 결정이 됩니다.
    •  GameObject 생성방법 
메뉴 항목 -> GameObject->Create Empty

생성 화면
빈 게임 오브젝트에서도 트랜스폼 컴포넌트를 가지고 있습니다




  • 컴포넌트(Component)
    • 모든 GameObject란 집합체의 기능적인 조각들
    • 컴포넌트(Component) 추가 방법
컴포넌트는 Inspector 항목에서 Add Component를 클릭 원하는 컴포넌트 찾아 클릭하거나 검색 칸에서 검색하여 추가.

 컴포넌트 브라우저 


Posted by JakeGD
|