분류 전체보기 485

[Unity] GUI 사용 예제

가로/세로 배치 // Layout을 가로로 배치한다. EditorGUILayout.BeginHorizontal(); { .. 원하는 GUI 배치 내용물 입력 } EditorGUILayout.EndHorizontal(); // Layout을 세로로 배치한다. EditorGUILayout.BeginVertical(); { .. 원하는 GUI 배치 내용물 입력 } EditorGUILayout.EndVertical(); EditorGUILayout 클래스에 있는 Horizontal 함수를 사용하면 가로로 배치할 수 있다. 여기서 중요하게 봐야 할 점은 항상 가로로 배치할 GUI 내용물들을 Begin과 end 사이에 넣어야 한다는 것이다. EditorGUILayout.EndHorizontal();을 넘어가는 순간..

Unity 2023.05.18

[Unity] UI 텍스트 가변길이 설정 방법(레이아웃 재 정렬)

가변적인 텍스트에 따라서 UI의 크기를 맞추기위해 LayoutRebuilder.ForceRebuildLayoutImmediate를 사용하면된다. LayoutRebuilder.ForceRebuildLayoutImmediate(사용하고자하는 텍스트의 ReactTransform); https://docs.unity3d.com/2018.2/Documentation/ScriptReference/UI.LayoutRebuilder.ForceRebuildLayoutImmediate.html Unity - Scripting API: UI.LayoutRebuilder.ForceRebuildLayoutImmediate Normal use of the layout system should not use this method...

Unity 2023.05.17

[React] 라우팅 방법 버전 6 및 유용한 기능

라우터 설치 dom뒤에 @6는 라우터의 버전을 의미한다. React route 참고서 https://reactrouter.com/en/main/start/tutorial#setup Tutorial v6.11.0 Tutorial Welcome to the tutorial! We'll be building a small, but feature-rich app that lets you keep track of your contacts. We expect it to take between 30-60m if you're following along. 👉 Every time you see this it means you need to do something in th reactrouter.com BrowserRou..

Web/React 2023.05.02

[React] PropDrilling 해결을 위한 Context api 사용 방법

prop drilling 이란 React 컴포넌트 트리의 일부로 데이터를 전달하기 위한 프로세스. props를 통해 데이터를 전달하는 과정에서 중간 컴포넌트는 그 데이터가 필요하지 않음에도 자식 컴포넌트에 전달하기 위해 props를 전달해야하는 과정을 말한다. 이를 해결하기 위해 React에서는 Context를 사용한다. Context 생성 const MyContext = React.createContext(value); Context Provider를 통한 데이터 공급 { //context안에 위치할 자식 컴포넌트들 }

Web/React 2023.04.24

[React] useReducer 컴포넌트에서 상태변화 로직 분리

컴포넌트 내에서 함수가 많아지고 길어지는 방법은 복잡해지기 때문에 올바른 방법이라고 할 수 없다. useReducer은 컴포넌트의 상태변화 로직을 컴포넌트 밖으로 분리하여 사용할 수 있다. reducer const reducer = (state, action) => { switch (action.type) { case 1: return state +1; case 2: return state +2; case 3: return state +3; default: return state; } ); 형식 const reducer = (상태변화가 일어나기전 status, 어떤 상태변화를 일으킬 지의 action 객체) =>{ switch(action.type){ return 새로운 상태 값 } } dispatch ..

Web/React 2023.04.24

[React] Reac.memo 함수형 컴포넌트 업데이트 조건 적용방법

Reac.memo는 고차 컴포넌트이다. 고차 컴포넌트는 컴포넌트를 가져와 새 컴포넌트를 반환하는 함수입니다. Reac.memo은 똑같은 Prop을 전달받으면 리렌더링 하지 않는다. 문자열과 정수형에 memo 사용할 경우 import React, { useEffect, useState } from "react"; const Textview = React.memo(({ text }) => { useEffect(() => { console.log(`updatae :: text : ${text}`); }); return {text}; }); const CountView = ({ count }) => { useEffect(() => { console.log(`updatae :: count : ${count}`);..

Web/React 2023.04.21

[React] useMemo 사용방법

useMemo는 상태가 변했는 지를 확인하여 상태가 변하지 않았으면 함수를 실행하지 않게 만드는 랜더링 최적화 방법이다. import { useMemo } from "react"; const getDiaryAnalysis = useMemo(() => { console.log("useMemo 시작"); const goodCount = data.filter((it) => it.emotion >= 3).length; const badCount = data.length - goodCount; const goodRatio = (goodCount / data.length) * 100; return { goodCount, badCount, goodRatio }; }, [data.length]); deps에 data...

Web/React 2023.04.21

[React] Lifecycle 생애주기 및 사용방법

Mount -> Update -> UnMount 화면에 생성 -> 변화 -> 화면에서 제거 useEffect Mont & Update import React, { useEffect, useState } from "react"; const Lifecycle = () => { const [count, setCount] = useState(0); const [text, setText] = useState(""); //Mount useEffect(() => { console.log("mount"); }, []); //Update useEffect(() => { console.log("update"); }); //Update당시 조건에 따른 예외처리 useEffect(() => { console.log(`coun..

Web/React 2023.04.21

[React] 사용자 입력 처리 import { useState }

사용자 입력 import { useState } from "react"; const DiaryEditor = () => { const [state, setState] = useState({ author: "", content: "", }); return ( 오늘의 일기 { setState({ author: e.target.value, content: state.content }); }} /> { setState({ content: e.target.value, content: state.author }); }} /> ); }; export default DiaryEditor; ... 연산자 사용 방법 import { useState } from "react"; const DiaryEditor = () =>..

Web/React 2023.04.20