반응형 앱 만들기/유니티2D22 unity C# serializefield 사용 이유 1. serializefield를 사용하는 이유 유니티에서 serializefield를 사용하는 이유를 알아보겠습니다. public으로 선언된 변수가 있다고 했을 때, 해당 변수는 Inspector에서도 보이게 되며 다른 스크립트에서도 모두 보입니다. 즉, 수정 도 가능하게 됩니다. 프로젝트 진행 시 원치 않게 변하게 될 수 있다는 의미입니다. 교과서 적인 표현으로는 객체 캡슐화에서 보안성이 조금 떨어진다고 말할 수 있겠습니다. 그래서, 변수 선언 시 무분별한 노출을 막기 위해서 private 접근제한자를 사용하곤 하죠. 그런데 private이지만 inspector에서만 보이게 하고 싶다면, 유니티 GUI 툴의 장점만을 살리고 싶다는 이야기죠. 이럴 때 serializefield를 사용합니다. 하기처럼 .. 앱 만들기/유니티2D 2023. 5. 23. 유니티 스마트 폰 터치로 물체 움직이기 PC 게임일 경우 키보드 키 값의 입력을 제어하여 물체(오브젝트) 등을 움직이면 되지만, 스마트 폰 게임에서는 동작하지 않는다. 그렇기에 스마트 폰 터치 시 움직임을 구현하기 위해서는 하기 코드를 적용해야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CarMove : MonoBehaviour { float speed = 0; // Update is called once per frame void Update() { //마우스를 클릭하면... if (Input.GetMouseButton.. 앱 만들기/유니티2D 2021. 7. 25. 유니티-안드로이드 빌드 세팅하기. 유니티 실행의 기본 설정은 PC 이다. 스마트 폰에서 구동되게 하려면 빌드 세팅이 필요하다. 방법은 1. 파일->빌드세팅 을 선택한다. 2. 빌드세팅 팝업창에서 안드로이드를 선택 후 Switch Platform 선택. (아이폰 구동을 원한다면 iOS) 3. 안드로이드 환경으로 설정되고 나면 하기 처럼 빌드가 가능하다. (바로 실행을 원하면, Build And Run 선택) 좋은 하루보내세요. 감사합니다 :) 앱 만들기/유니티2D 2021. 7. 15. 유니티-조이스틱 구현하기 핸드폰에서 게임을 하기 위해서는 터치 및 조이스틱이 원활히 구현이 되어야 한다. 오늘은 조이스틱에 따라 모든 방향으로 이동이 가능한 동작을 구현해 본다. 비행 슈팅게임의 조이스틱 1. UI 캔버스 로 조이스틱을 만들자. 2. 소스 구현 - 조이스틱 -조이스틱의 움직임을 담당한다. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 8.. 앱 만들기/유니티2D 2021. 7. 12. 유니티 - Standrad Assets 2018.4 버전 컴파일 에러 발생시 Assets\Standard Assets\Utility\SimpleActivatorMenu.cs(11,16): error CS0619: 'GUIText' is obsolete: 'GUIText has been removed. Use UI.Text instead.' 최신 유니티에서 Standard Assets 2018.4 버전을 임포트하고 컴파일시 상기와 같은 에러가 발생한다면 하기와 같은 작업이 필요하다. using UnityEngine.UI; 를 추가 임포트 해주고 GUIText 를 Text 로 수정해주면 된다. 그럼 컴파일 OK. 감사합니다. 앱 만들기/유니티2D 2021. 7. 8. 유니티-8방향으로 총알을 발사하다. 타임 파이럿 처럼 8방향으로 움직이면서 사방으로 총알을 쏘기위해서는 https://www.youtube.com/watch?v=AgNTahUrJCI https://soo0100.tistory.com/1553 유니티 - 전투기 8방향으로 이동 하기. 타임 파일럿 이라는 아케이드 게임있었다. 사실 난 접해보지 못한 오락실 게임이였는데, 당시 비행 슈팅게임의 한 획을 그은 게임이라고 한다. 보시는 것 처럼, 전투기가 8방향으로 움직인다. 유 soo0100.tistory.com 위 8방향으로 이동 포스팅 이후 8방향으로 총알을 쏘는 방법을 구현해 본다. 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 32 33 .. 앱 만들기/유니티2D 2021. 7. 1. 유니티-스프라이트 변경하기. 상기 처럼 상황에 따라서 스프라이트가 변경될 필요가 있다면? 스프라이트 변경은 어떻게 할까? 여러방법이 있겠지만, 오늘은 Sprites 배열을 활용해 본다. 전투기를 움직이는 스크립트에 하기와 같이 Sprite[] 배열을 선언과 정의한다. public Sprite[] sprites = new Sprite[direction]; // 방향에 따른 이미지를 교체하기 위해서. Inspector 창에서 각 배열요소가 될 스프라이트를 마우스로 끌어넣기 하여 배열값을 초기화 한다. 이런 것이 바로 유니티의 편리성 중 하나가 될 수 있다. 그럼 실제 소스에서는 어떻게 스프라이트를 원할때마다 변경할까? 키보드에서 오른쪽 대각선 방향키가 동시에 눌렸을때를 예로 들어보자. 전투기의 spriteRenderer 컴포넌트를 얻어.. 앱 만들기/유니티2D 2021. 6. 30. 유니티 - 전투기 8방향으로 이동 하기. 타임 파일럿 이라는 아케이드 게임있었다. 사실 난 접해보지 못한 오락실 게임이였는데, 당시 비행 슈팅게임의 한 획을 그은 게임이라고 한다. 보시는 것 처럼, 전투기가 8방향으로 움직인다. 유니티로 아군 기체를 위와 같은 움직임으로 만들어 보면 어떨까란 생각을 해본다. 하기 처럼 말이다. https://youtu.be/iso3DFqO1kU 위 처럼 8방향으로 동작하기 위해서는 8방향의 이미지가 모두 필요할 수 도 있지만, 필자는 하기 3장의 이미지를 활용하여 8방향을 구현해 보았다. 이미지 로테이션을 통해서 가능하다. P1 은 가로 오른쪽,왼쪽 P2 는 상하 P3 는 대각선 4방향 코드는 하기와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2.. 앱 만들기/유니티2D 2021. 6. 29. 유니티 - 디버그 로그 출력하기 유니티에서도 간단하게 디버그 테스트를 출력할 수 있다. 위 처럼 Start() 초기 함수에 디버그를 코드를 출력해본다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class DebugTest : MonoBehaviour { // Start is called before the first frame update void Start() { Debug.Log("Start()"); } // Update is called once per frame void Update() { } } Colored by Color Scripter cs 바로, Debug.Log(); 함수를 이용하면 디버그 코드를 손쉽게 출력할 수 있다. 디버그 코드는 Console 창에서 확인이 가능하다. 감사합니다. :) 앱 만들기/유니티2D 2021. 6. 28. 유니티-화면 전환하기 유니티에서 화면을 전환하는 주요한 스크립트는 하기와 같다. using UnityEngine.SceneManagement; SceneManager.LoadScene(); 물론 게임 내에서 여러 이벤트에 따라 씬이 전환되겠지만, 오늘은 마우스 터치시 전환되도록 해보자. 그러기 위해서는 OnMouseDown()에 전환코드를 적용하면 된다. 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 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class OnMou.. 앱 만들기/유니티2D 2021. 6. 19. 유니티-충돌시 오브젝트 사라지게 하기 게임에서 충돌시 객체를 사라지게 하는 요소는 여러가지가 있을것이다. 총알에 맞아 적군이나 아군이 터지는 것도 그 중 하나이다. 오늘 예제에서는 유도탄이 날아와 아군에 맞으면 탄과 아군 유닛이 동시에 사라지게 하는 코드를 작성해 본다. https://youtu.be/AuwDktoy4E8 탄 과 기체 모두 Rigidbody 2D 와 BoxCollide 2D 를 적용하고, 기체의 C# 코드를 하기와 같이 작성한다. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59.. 앱 만들기/유니티2D 2021. 6. 17. 유니티-충돌 처리 하기(2) 게임 중지시키기 특정 오브젝트에 주인공 유닛이 충돌하였을때 게임을 중지시킬 수 있다. 게임을 중지 시킬때 중요한 코드는 하기와 같다. 게임 역시 영화처럼 시간 개념이 있기때문에 Time.timescale = 0 으로 하면 게임씬이 정지하게 된다. 반대로 Time.timescale=1 이면 정상적인 속도로 시간이 움직인다. Time.timescale = 2 하면 그럼 어떻게 될까? 그렇다 2배속으로 빨리 재생이 되어진다. 유니티에서 게임은 영화의 한씬처럼 생각하면 된다. 지난 시간에 이어 소방차를 활용해보자. 특정 블럭에 충돌되면 멈추어서게된다. 하기 처럼 말이다. https://youtu.be/7Xs04chErck 지난 시간과 동일하게 블럭 과 자동차에 동일 컴포넌트를 적용하고 하기 처럼 코드를 작성한다. 이 코드는 자.. 앱 만들기/유니티2D 2021. 6. 16. 이전 1 2 다음 💲 추천 글 반응형