Unity

Unity

[Unity] 증강(로그라이크 게임) 기능 구현하기

뱀파이어 서바이벌, 탕탕특공대, 롤토체스, 궁수의 전설 등의 게임처럼 능력치를 업그레이드 할 수 있는 증강 선택지를 띄워주는 기능이다. 1. 기존 아래 이미지처럼 인스펙터 창에 증강의 선택지로 사용할 오브젝트를 넣어 관리했던 스크립트: using Assets.HeroEditor.Common.Scripts.Common; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; using System.Text; public class Augmentation : SingletonPattern.Singleton { [SerializeField] GameObject mai..

Unity

유니티에서 ChatGPT사용하기 (간단한 레시피추천 앱) - 2

유니티에서 ChatGPT사용하여 레시피추천 앱 만들기(OpenAI API) - 1 : https://zizh.tistory.com/94 새로운 씬을 만들어 UI를 구성한다. 이전 스크립트를 목적에 맞게 수정한다 using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; using UnityEngine.UI; using OpenAI_API; using OpenAI_API.Chat; using System; using OpenAI_API.Models; public class OpenAIController : MonoBehaviour { public TMP_Text textField; public TMP_..

Unity

유니티에서 ChatGPT사용하기 (간단한 레시피추천 앱) - 1

기획설명 : OpenAI 의 API를 활용해 재료를 입력받아 아이에게 해줄 영양식 레시피를 추천해주는 앱 <p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-si..

Unity

[Unity] 유니티 엑셀 연동 / 깊은복사 얕은복사 실무 오류 분석

1. 엑셀 파일 만든 후 .csv파일로 저장 2. 유니티의 Resource -> Data -> 지정한 폴더에 파일 넣기 3. 클릭해보면 인스펙터에 기본으로 쉼표 구분선으로 되어있을텐데 아래 블로그를 참고하여 구분 기호를 가장 다른곳에서 사용하지 않는 @로 지정 (인스펙터에 , 대신 @로 구분되어있는 것 확인 가능) https://learnandcreate.tistory.com/560 엑셀에서 저장한 csv의 구분기호 변경하기 엑셀에서 저장한 csv의 구분기호 변경하는방법 csv는 쉼표(comma)를 기준으로 항목을 구분하여 저장한 데이터 형식이다. 기본적으로 쉼표로 설정되어있는 구분 문자(delimiter)를 사용자 지정할수있 learnandcreate.tistory.com 4. 저장할 때의 파일 형식 ..

Unity

[Unity] Transform.Translate()

translate의 두가지 오버로딩 보면 기본적으로 space.self로 되어있는것을알수있다(로컬좌표계) 월드좌표계로 다루고 싶다면 오버로딩된 두번째 메소드로 두번째매개변수인 relativeto를 space.world로 명시해주면된다. transform.Translate(new Vector(3,0,0)) 을 사용하여 물체를 90도만큼 회전을 시키고, 로컬좌표계x축으로이동을하게되면 오브젝트의 기준의 x축으로 이동을 하기때문에 월드좌표계에서의z축으로 이동한다. 즉 로컬의 회전값도 기준이된다. 참고로 relativeto를 다른오브젝트.transform으로 하면 그 다른오브젝트가 기준이되어 움직인다! 개발 중 이해가 안됐던 부분이다. 몬스터가 화면에서 멀어질 때 플레이어의 주변으로 재배치하는 로직인데, 여기서 ..

Unity

[Unity] 무한 맵 이동

RuleTile생성 -> 이름: RanTile-> 아래 사진과 같도록 설정 Rule Tile : 인접한 타일에 따라 이미지가 정해지는 타일 하지만 이걸 안쓰고 Random을 쓴다. 그렇기 때문에 다른 Rule Tile은 전혀 생성할 필요가 없음 Random값으로 주어진 타일디자인에는 의도적으로 Tile2가 가장 많이 나오도록 3/10 으로 설정했다 Window->2D->Tile Pallete창 열기 Hierarchy에서 다음과 같이 tilemap 생성 이후 Tilemap을 그려주면 된다 default brush에는 다양한 옵션이 있으니 참고. 예시엔 붓으로 Line brush로 20 x 20 틀을잡고 빈공간을 채우기 붓으로 채웠다 Ran Tile에서 노이즈를 조절할 수 있다 이제 만든 타일맵에서 벗어나도..

Unity

[Unity] 오브젝트 이동, Time.DeltaTime, normalized()

일단 물리 연산은 Update()가 아니라 FixedUpdate()에 구현한다 FixedUpdate() : 물리 연산 프레임마다 호출되는 생명주기 함수 오브젝트를 이동시키는 방법 세가지 public class Player : MonoBehaviour { public Vector2 inputVec; public Rigidbody2D rigid; private void Awake() { rigid = GetComponent(); } private void Update() { inputVec.x = Input.GetAxis("Horizontal"); inputVec.y = Input.GetAxis("Vertical"); } private void FixedUpdate() { //1. 힘을준다 rigid.Add..

Unity

[Unity] Start()와 생성자역할 Init()의 실행순서 차이

Start() 는 게임오브젝트가 활성화 될때 Awake()이후에 한번 실행되는 함수이다. Init은 클래스가 모노비헤이버를 상속받을 때 기본적으로 생성자를 사용하지 못하기 때문에 직접 생성자의 역할을 하는 메서드를 구현해준 것이다. (암묵적으로 이름은 Init이다) 그럼 초기화할때 Start()에 초기화할 코드를 넣어주면되지 왜 Init()이라는 함수를 따로 만들어 생성자처럼 활용할까? Awake,Start등등은 기본적으로 게임오브젝트가 활성화 될때 실행된다 게임시작할때 비활성화되어있다가 SetActive()를 해주면 그때 비로소 실행된다는 말 그렇다면 프리팹을 인스턴스화할 때 활성화되었으니 Start()가 먼저 실행될까 아니면 인스턴스화하면서 같이 호출한 Init()이 먼저 실행될까? Init() 의 ..

파워지훈
'Unity' 카테고리의 글 목록