일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 최단거리 알고리즘
- 크루스칼
- 행동트리
- sparkmain(clone)
- C#
- unity sparkmain(clone)
- GetComponent
- 유니티 sparkmain(clone)
- sparkmain(clone) 무한생성
- Unity
- list clear
- dropdown
- raycast
- articulation body
- Simulation
- BFS
- 트리구조
- readonly
- removeAll
- 유니티
- 너비탐색
- navisworks api
- 디지털트윈
- 티스토리챌린지
- 드롭다운
- unity korea
- dfs
- 최소신장트리 mst
- 깊이탐색
- 오블완
- Today
- Total
목록분류 전체보기 (103)
낑깡의 게임 프로그래밍 도전기

네임 스페이스 작성using System.IO;이 IO의 뜻은 Input, Out이다. 어딘가로 데이터를 내보내거나 가져올때 쓰면 되는 네임스페이스다. 이것을 쓰고나면 아래와 같이 System.IO File이나 클래스를 쓸수 있게된다.저장을 하기위해서 File.WriteAllText를 쓰는데 인수를 보면 저장할 경로와 컨텐츠를 넣어야하는 것을 확인할 수 있다.path의 경로를 직접 설정하기 부담될땐 아래와 같이 사용path = Application.persistentDataPath;유니티가 알아서 경로를 찾고 폴더를 생성해 준다. 그러나 그냥 이렇게 해도 잘 저장해주겠지만 관리를 위해 아래 "save" 처럼 파일 명을 같이 지정해 주는 것이 좋다. string path; string filen..
유니티에서 JSON이란?JSON (JavaScript Object Notation)은 텍스트 기반의 데이터 포맷으로, 데이터를 저장하거나 전송할 때 사용된다. 유니티에서는 객체를 JSON 형식으로 직렬화(Serialize)하거나 JSON 데이터를 역직렬화(Deserialize)하여 객체로 변환하는 데 주로 활용된다.유니티에서 JSON의 주요 특징가볍고 인간 친화적텍스트 기반이라 사람이 읽고 쓰기 쉽다.데이터 구조가 {키: 값} 형태로 간단하다.범용성JSON은 플랫폼이나 언어에 독립적이다.서버와 클라이언트 간 데이터 통신, 설정 파일, 저장된 게임 데이터 등을 다룰 때 유용하다.유니티에서 기본적으로 지원유니티는 JsonUtility 클래스를 통해 JSON 데이터를 쉽게 다룰 수 있다.별도의 라이브러리를 추..
유니티에서 데이터를 저장할 때 JSON과 Binary 방식은 각각의 장점과 단점이 있다. JSON이 많이 사용되는 이유 1. 인간 친화적이고 가독성이 좋음JSON은 텍스트 형식으로 저장되기 때문에 사람이 직접 파일 내용을 열어보고 이해하기 쉬움.예를 들어, 게임 데이터를 디버깅하거나 저장된 내용을 직접 수정해야 할 때 JSON 파일은 쉽게 읽고 편집할 수 있다.2. 범용성JSON은 다른 플랫폼이나 언어와의 호환성이 매우 뛰어남.예를 들어, 서버와 데이터를 주고받거나 다른 시스템에서 데이터를 읽어야 할 때 JSON은 표준 형식으로 널리 지원됨.3. 유니티에서 기본적으로 지원유니티의 JsonUtility 클래스는 JSON 직렬화 및 역직렬화를 쉽게 처리할 수 있도록 기본적으로 제공됨.추가 라이브러리를 설치..
Cinemachine Dolly Cart를 특정 시간 후에 멈추고, 다시 일정 시간이 지나면 움직이도록 설정하는 Unity C# 스크립트입니다.public class DollyCartTimedStop : MonoBehaviour{ public CinemachineDollyCart dollyCart; public float stopAfter = 11.3f; public float resumeAfter = 14.3f; private bool isStopped = false; private float timer = 0f; void Update() { timer += Time.deltaTime; // 11.3초 후 멈추기 if ..
유니티를 활용하다 보니 오브젝트가 Opaque일때와 Transparent일때 색감이 다를 때가 있었다. *오브젝트가 속이 보이는 에러 같은 현상이 발생하거나 Plan의 색감이 달랐음그러다보니 평소에는 Opaque로 쓰다가 필요할 때만 Transparent를 쓰고 싶어서 구형 해보려고한다(물론 더 좋은 방법도 있겠지만 오늘은 이 방법으로! 더 좋은 방법을 아시는분 댓글 달아주시면 감사하겠습니다.)렌더링 모드의 의미 *렌더링 모드는 기본적으로 Unity에서 객체가 렌더링되는 방식Opaque (불투명) : 오브젝트가 완전히 불투명하게 렌더링. 투명도는 무시되고, Z-Buffer에 쓰여진 순서대로 그려진다.Cutout (컷아웃) : 불투명하지만 알파 채널에 따라 픽셀을 잘라내는 방식으로 렌더링된다. 주로 투명한..

Magnitude : 한마디로 벡터의 크기를 반환하는 프로퍼티sqrMagnitude : Magnitude의 제곱값벡터의 크기란 백터이 시작점과 끝점의 양수 길이라고 생각하면 된다. Magnitude 는 선한점과 다른 한점의 거리를 구해서 두점사이의 길이를 알아낼때, 두개의 벡터를 비교할때 사용하면된다. 속도 계산을 할때 유용하다고 한다. 벡터거리나 크기를 비교하려면 변수로 한번 감싼다음에 비교해야한다예시)Vector3 vec = new Vector3(x, y, z);float magnitude = Vector3.magnitude(vec); 나는 두개의 점을 찍으면 나무가 일정한 간격으로 심어지는 기능을 만들때 사용하였다. 사용자가 1번에서 2번인 오른쪽 방향으로 찍을 수도 있지만 2번에서 1번인 왼쪽..
메쉬 버텍스의 정점으로부터 레이를 쏘고 상대메쉬 버텍스로 부터 정보를 받아올 때 사용할 때 썼던 문구 transform.InverseTransformPoint(hit.point);여기서 InverseTransformPoint란 Unity에서 월드 좌표계에 있는 점을 로컬 좌표계로 변환하는 메서드이다.즉, 게임 오브젝트의 월드 좌표를 해당 오브젝트의 로컬 좌표계로 변환할 때 사용된다. 이것은 메쉬 변형이나 위치 변환 등을 처리할 때 유용하다.* hit.point : 월드 좌표에서 감지된 충돌 지점메쉬의 버텍스는 그 오브젝트의 로컬 좌표계에 있기 때문에, hit.point를 메쉬의 로컬 좌표계로 변환하여 올바르게 매칭하기 위해 InverseTransformPoint를 사용하였다.

유니티 코리아 유튜브를 보면서 배운 내용 정리!Rigidbody 는 유니티에서 기본적으로 쓰이는 물리 적용 기능이다.그러나 디지털 트윈이나 시뮬레이션 용으로는 오류 발생도 잦고 부족한 감이 있다.리지드바디가 안좋은 것이 아니다. 게임을 할때는 퍼포먼스도 중요하기 때문에 최적화 측면에서는 좋으나 최적화를 포기하고 좀더 정교한 물리의 결과를 얻고자할 때 Articulation Body를 사용하는 것이다. 충돌이 잦을 때 흐틀러짐 현상이 있고 상대 질량차이가 크면 수치가 정확하지 않기도 하다. 이러한 점 때문에 시뮬레이션 용으로 쓰기는 힘들다 다수의 컴포넌트가 필요하고 결과가 부정확하다. VHACD는 매우 정교하나 작은 오브젝트에는 오히려 독이 되기도 한다오른쪽사진의 위는 컨벡스로 잡은 것이고 아래는 VHA..
Unity 드롭다운이 요즘에는 TextMeshPro로 나오기 때문에 GetComponent를 적고 자동완선으로 나오는 Dopdown을 선택해서 불러와도 null이 뜬다 우선 해당 스크립트에 네이스페이를 추가using UnityEngine.UI; using TMPro; 그리고 TMP_Dropdown 타입으로 변수 선언 그후에 GetComponentdropDown = GetComponent(); 을 해주면 원하는 작업을 할 수 있다. 간단한 코드 예시using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using TMPro;public class DropDownManager :..

갑자기 SparkMain(Clone) 파티클이 무한 생성 되는 오류가 발생하였다. 무엇이 문제인지 몰라 스크립트를 수정하고 되돌려보고 했는데 아무런 관련이 없었다.알고 보니 3D 오브젝트 Plane을 하나 추가하고 스케일을 늘리겠다고 Y값도 확 늘려버린 것 때문에 이런 현상이 발생하는 것이었다. Plane 삭제로 끝났지만 왜 그런 오류가 발생하는 것인지는 아직도 모른다..여러명이 함께만든 프로젝트라 Plane을 생성하면 파티클을 막 생성해! 라는 코드가 어디에 있을지도...하지만 하이어라키창이나 코드 전체 검색으로는 SparkMain을 찾지 못하였고 에셋폴더로 프리팹으로 존재하였다 하지만 드론이 무한생성되거나 컨트롤러가 무한 생성되고 있지않은데 왜.... SparkMain(Clone) 무한 생성 오류..