← 홈

🎮

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO
OS:

기초

에디터 단축키

Q 이동 도구
W 위치 도구
E 회전 도구
R 스케일 도구
T 사각형 도구
Ctrl+P 재생/중지
Ctrl+Shift+P 일시정지
F 선택 항목에 포커스
Ctrl+D 복제

MonoBehaviour 기초

기본 스크립트
using UnityEngine;

public class MyScript : MonoBehaviour
{
    // Called once when script is loaded
    void Awake() { }
    
    // Called once when object is enabled
    void Start() { }
    
    // Called every frame
    void Update() { }
    
    // Called at fixed intervals (physics)
    void FixedUpdate() { }
    
    // Called after all Update functions
    void LateUpdate() { }
    
    // Called when object is destroyed
    void OnDestroy() { }
}

트랜스폼

트랜스폼 연산

위치 및 회전
// Position
transform.position = new Vector3(0, 1, 0);
transform.localPosition = Vector3.zero;

// Rotation
transform.rotation = Quaternion.identity;
transform.eulerAngles = new Vector3(0, 90, 0);
transform.Rotate(Vector3.up, 45f);
transform.LookAt(target);

// Scale
transform.localScale = Vector3.one;

// Movement
transform.Translate(Vector3.forward * speed * Time.deltaTime);
transform.position = Vector3.Lerp(start, end, t);
transform.position = Vector3.MoveTowards(current, target, step);
계층 구조
// Parent/child
transform.SetParent(parentTransform);
transform.parent = null;  // Unparent

// Find children
Transform child = transform.Find("ChildName");
Transform child = transform.GetChild(0);

// Iterate children
foreach (Transform child in transform)
{
    Debug.Log(child.name);
}

// World vs local
Vector3 worldPos = transform.TransformPoint(localPos);
Vector3 localPos = transform.InverseTransformPoint(worldPos);

물리

리지드바디 & 충돌

리지드바디
Rigidbody rb = GetComponent<Rigidbody>();

// Force
rb.AddForce(Vector3.up * 10f);
rb.AddForce(Vector3.up * 10f, ForceMode.Impulse);

// Velocity
rb.velocity = new Vector3(0, 5, 0);
rb.angularVelocity = Vector3.zero;

// Properties
rb.mass = 1f;
rb.drag = 0.5f;
rb.useGravity = true;
rb.isKinematic = false;
충돌 콜백
// Collision (physics)
void OnCollisionEnter(Collision collision)
{
    Debug.Log("Hit: " + collision.gameObject.name);
    ContactPoint contact = collision.contacts[0];
}

void OnCollisionStay(Collision collision) { }
void OnCollisionExit(Collision collision) { }

// Trigger (no physics response)
void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Player"))
    {
        // Do something
    }
}

void OnTriggerStay(Collider other) { }
void OnTriggerExit(Collider other) { }
레이캐스팅
RaycastHit hit;
if (Physics.Raycast(origin, direction, out hit, maxDistance))
{
    Debug.Log("Hit: " + hit.collider.name);
    Debug.Log("Point: " + hit.point);
    Debug.Log("Normal: " + hit.normal);
}

// From camera
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
    // Hit something
}

// Multiple hits
RaycastHit[] hits = Physics.RaycastAll(origin, direction);

입력

입력 시스템

레거시 입력
// Keyboard
if (Input.GetKeyDown(KeyCode.Space)) { }  // Frame pressed
if (Input.GetKey(KeyCode.W)) { }          // Held down
if (Input.GetKeyUp(KeyCode.Escape)) { }   // Frame released

// Mouse
if (Input.GetMouseButtonDown(0)) { }  // Left click
Vector3 mousePos = Input.mousePosition;
float scroll = Input.mouseScrollDelta.y;

// Axis
float h = Input.GetAxis("Horizontal");  // -1 to 1
float v = Input.GetAxis("Vertical");
float rawH = Input.GetAxisRaw("Horizontal");  // -1, 0, or 1
새 입력 시스템
using UnityEngine.InputSystem;

public class PlayerInput : MonoBehaviour
{
    PlayerControls controls;
    
    void Awake()
    {
        controls = new PlayerControls();
    }
    
    void OnEnable()
    {
        controls.Enable();
        controls.Player.Jump.performed += OnJump;
    }
    
    void OnDisable()
    {
        controls.Player.Jump.performed -= OnJump;
        controls.Disable();
    }
    
    void OnJump(InputAction.CallbackContext context)
    {
        // Jump logic
    }
    
    void Update()
    {
        Vector2 move = controls.Player.Move.ReadValue<Vector2>();
    }
}

컴포넌트

컴포넌트 접근

컴포넌트 가져오기
// Get component on same object
Renderer renderer = GetComponent<Renderer>();

// Get component in children
Collider col = GetComponentInChildren<Collider>();
Collider[] cols = GetComponentsInChildren<Collider>();

// Get component in parent
Canvas canvas = GetComponentInParent<Canvas>();

// Find objects
GameObject obj = GameObject.Find("Name");
GameObject obj = GameObject.FindWithTag("Player");
Enemy[] enemies = FindObjectsOfType<Enemy>();

// Add/remove components
Rigidbody rb = gameObject.AddComponent<Rigidbody>();
Destroy(GetComponent<Collider>());

생성 & 파괴

오브젝트 관리

생성 & 파괴
// Instantiate prefab
public GameObject prefab;

GameObject obj = Instantiate(prefab);
GameObject obj = Instantiate(prefab, position, rotation);
GameObject obj = Instantiate(prefab, parent);

// As specific type
Enemy enemy = Instantiate(enemyPrefab);

// Destroy
Destroy(gameObject);          // Destroy this object
Destroy(gameObject, 2f);      // After 2 seconds
Destroy(GetComponent<Rigidbody>());  // Component

// Don't destroy on load
DontDestroyOnLoad(gameObject);

코루틴

코루틴

코루틴 사용
IEnumerator MyCoroutine()
{
    Debug.Log("Start");
    
    yield return null;  // Wait one frame
    yield return new WaitForSeconds(2f);
    yield return new WaitForSecondsRealtime(2f);  // Unaffected by timeScale
    yield return new WaitUntil(() => condition);
    yield return new WaitWhile(() => condition);
    yield return new WaitForEndOfFrame();
    yield return new WaitForFixedUpdate();
    
    Debug.Log("End");
}

// Start/stop
Coroutine c = StartCoroutine(MyCoroutine());
StopCoroutine(c);
StopAllCoroutines();