유니티 89

유니티에 동영상 삽입하기

1. Hierarchy 창에 UI - Raw Image 생성 2. RawImage의 크기는 동영상 해상도에 맞게 조절 3. RawImage 밑에 Video - Video Player 생성4. 저장하고 싶은 폴더 안에 Create - Render Texture 생성  Render Texture는 Raw Image와 크기 동일하게 통일 5. RawImage-Inspector-Render안에 Render Texture 삽입6. Video Player - Inspector - Video Clip에 원하는 동영상 삽입Target Texture에 Render Texture 삽입   잘 재생되는것을 확인

Draw Mode - Sliced 이미지 깨짐

평범한 흰색 패널 분명히 Draw Mode - Sliced로 변경했음에도 불구하고 가로로 늘렸을때 이미지가 깨지는것을 볼 수 있다분명 전에 배웠었던건데...이걸 안깨지게 하려면 어떻게 해야하는지 생각이 안났다 이번을 마지막으로 까먹지 않도록 하자. 원본 이미지를 찾아 Sprite Mode - Multiple로 맞춰준뒤 Sprite Editor로 들어간다 무한으로 늘어나도 상관없는 부분까지 잘라준뒤 (Border 조절) Apply를 눌러 적용시킨다 이제 자연스럽게 늘어나는것을 확인할 수 있다

싱글톤 (Singleton Pattern)

싱글톤 : 프로그래밍 디자인 패턴 중 추상 객체 인스턴스 생성 패턴중의 하나로  1. 게임 시스템에서 전체를 관장하는 스크립트(단일 시스템 자원 관리 차원)2. 게임 시스템상 전역 변수의 역할을 하는 스크립트3. 씬 로드시 데이터가 파괴되지 않고 유지4. 여러 오브젝트가 접근을 해야 하는 스크립트의 역할5. 단 한개의 객체만 존재 이렇게 5가지의 특성을 지니고 있다 특히 3번 같은 경우 새로운 씬을 로드하더라도싱글톤만큼은 다른 변수들처럼 파괴되는것이 아닌 자신이 가진 데이터들을 함께 유지한다  using System.Collections;using System.Collections.Generic;using UnityEngine;public class GameManager : MonoBehaviour{ ..

Json + Excel 응용(JsonUtility)

원래는 쭉 Json.Convert로 사용할 생각이었지만 아무리 생각해도지금 상황에서 더 편해보이는 JsonUtility를 사용하지 않을 이유가 없을것같다 그리고 후에 볼 수도 있으니 정리글을 간략하게나마 적어보려 한다 public class test1 : MonoBehaviour{ class Data { public int id; public string name; public int count; } void Start() { Data fruit = new Data() { id = 101, name = "apple", count = 3 }; //Json으로 변환 string jsondata = JsonU..

유니티/Json 2024.04.26

Json + Excel 응용(Json.Convert)

json생각보다 의미 자체나 활용은 어렵지 않지만 중요한 내용이기에 꼭 확실하게 짚고 넘어가야하는 json이다 json : 웹이나 네트워크에서 서버와 클라이언트 사이에서 데이터를 주고 받을 때 사용하sangeun00.tistory.com우선 json에 대한 아주 기본적인 설명이다 그리고 패키지 매니저에서 Newtonsoft Json이 설치되었는지 확인하자  이제 엑셀과 제이슨을 유니티에 응용하는 과정을 살펴보자그전에 유용하게 쓰일 사이트들부터 소개하고 시작하겠다  Mr. Data Converter shancarter.github.io어떠한 형식의 문서를 집어넣어도 JSON 형식의 텍스트로 변환해주는 사이트(엑셀 -> JSON)  https://jsonformatter.curiousconcept.com/ ..

유니티/Json 2024.04.25

Vector3.Reflect

지정된 법선을 사용하여 표면을 벗어난 백터의 반사를 계산하는 함수 Vector3.Reflect(반영하려는 들어오는 벡터의 방향, 입력 벡터가 반사될 표면의 법선 벡터)incoming이 (1,1)normal(법선벡터)이 (0,1) 혹은 (0,-1)이다.  Reflect될 때 법선 벡터에 수직인 평면에 대해 대칭이기 때문에 법선 벡터의 방향을 뒤집어도 결과가 변경되지 않는다 그러므로 Vector3.Reflect(incoming, normal)의 결과는 (-1,1)이 되는것이다

Collision.Contact[]

Collision 타입은 충돌 지점들의 정보를 담는 ContactPoint 타입의 데이터를 contacts[] 라는 배열의 형태로 제공한다 private void OnCollisionEnter2D(Collision2D coll) { // 충돌 시 이전 속도의 벡터 크기를 이용하여 반사 후 속도를 계산하고, 속도를 감속시킵니다. Vector2 dir = Vector2.Reflect(lastVelocity.normalized, coll.contacts[0].normal); float speed = lastVelocity.magnitude; // 이전 속도의 크기를 사용 rigid.velocity = dir * Mathf.Max(speed..

슈팅게임 제작(3)

이번에는 플레이어가 발사하는 총알에 대해서 다뤄보겠다플레이어가 발사할 총알에 쓰일 이미지를 불러온뒤 Rigidbody 2D, Box Collider 컴포넌트를 넣어준다발사를 하면 일직선으로 쭉 날아갈 예정이기에 Rigidbody의 Gravity Scale은 0으로 설정해준다 Prefabs라는 폴더를 만들어준뒤 두 총알을 모두 프리팹으로 만들어 넣어준다 이렇게 프리팹까지 만들었다면 이번엔 총알을 무한으로 생성할 수 없기에특정 위치를 넘어가는 순간 총알을 자동으로 삭세해주는 시스템을 만들어보자  닷지 게임 제작우선 가볍게 스테이지부터 만들어준다. 여기서 주의할건 중심이 되는 Plane은 가급적 위치를 (0,0,0)으로 잡아주자 Player가 될 Capsule 모양 오브젝트. 색을 입히고 싶다면 Materia..

글로벌 좌표 / 로컬 좌표 / Transform.Translate

유니티 내에서 글로벌/월드 좌표는 Scene뷰에서 변경할 수 있다글로벌좌표 : 유니티의 가상 공간의 기준 좌표(월드좌표)유니티 가상공간의 (0,0,0) 기준점. 이건 유니티에서 관리되며 변경할 수 없음 글로벌 좌표시 오브젝트의 회전값을 아무리 변경해도 글로벌좌표로 고정된 기즈모는 변경되지 않는다 그럼 반대로 로컬 좌표란 오브젝트를 기준으로 시점이 되는 좌표이다   오브젝트를 회전하면 로컬좌표로 고정된 기즈모가 오브젝트를 따라 회전하는것을 볼수 있다물론 어느 좌표가 됐든 Inspector창에 보이는 Transform의 모든 값은 로컬좌표 기준으로 화면에 표시된다 그렇기에 transform.Translate를 사용할때 두번째 인자를 넣어 월드좌표를 기준으로 갈것인지,아니면 로컬좌표를 기준으로 갈것인지를 결정한다

반응형