전체 글

오브젝트 드래그게임상에서 오브젝트를 클릭하고 드래그하는 방법을 알아보자.우선, 가장 간단한 방법은 마우스 입력이 일어나면 마우스 포인터 위치에 raycast를 진행해 오브젝트를 찾아서 처리하는 것이다.하지만, 다른 방법도 있다.마우스 입력을 처리하는 인터페이스를 사용하면 된다.using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;public class DraggableObject : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler{ private Vector3 star..
문제 설명오늘은 공주님이 태어난 경사스러운 날이다. 왕은 이 날을 기념하기 위해 늘 꽃이 피어있는 작은 정원을 만들기로 결정했다.총 N개의 꽃이 있는 데, 꽃은 모두 같은 해에 피어서 같은 해에 진다. 하나의 꽃은 피는 날과 지는 날이 정해져 있다. 예를 들어, 5월 8일 피어서 6월 13일 지는 꽃은 5월 8일부터 6월 12일까지는 꽃이 피어 있고, 6월 13일을 포함하여 이후로는 꽃을 볼 수 없다는 의미이다. (올해는 4, 6, 9, 11월은 30일까지 있고, 1, 3, 5, 7, 8, 10, 12월은 31일까지 있으며, 2월은 28일까지만 있다.)이러한 N개의 꽃들 중에서 다음의 두 조건을 만족하는 꽃들을 선택하고 싶다.공주가 가장 좋아하는 계절인 3월 1일부터 11월 30일까지 매일 꽃이 한 가지..
벡터의 내적벡터의 내적은 게임 수학에서 자주 사용되는 개념이다.내적의 결과는 스칼라 값이다.이 결과를 통해 다음과 같은 정보를 알 수 있다.결과가 음수라면 두 벡터의 사이각이 90˚~270˚ 사이에 있다.내적은 $cos \theta$ 가 곱해지기 때문이다90˚~270˚에 있다는 뜻은 자신보다 뒤에 있다는 뜻이 된다.내적의 결과는 하나의 벡터를 다른 벡터에 투영한 벡터의 크기와 같다.즉, 하나의 벡터를 분리하여 다른 벡터의 방향에 대한 크기를 알 수 있다. 간단한 예로, 입사각과 반사각을 생각해 보자.바닥이 고정되어 있고 하나의 물체가 특정한 방향으로 떨어져 바닥과 완전 탄성 충돌을 한다고 가정해 보자.그렇다면 물체가 바닥에 튕겨 나갈 것이다.이를 수학적으로 계산하면 다음과 같다.바닥은 고정되어 있어 no..
스킬UI 버튼이 눌렸을 때, 스킬이 사용되도록 만들어 보자.우선, 스킬 버튼을 만들어 보자.해당 버튼은 다음과 같은 스크립트를 갖고 있다.버튼 입력 처리를 위한 Listener를 관리하는 스크립트이다.using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;using UnityEngine.UI;public class CButton : MonoBehaviour{ [SerializeField]private Button button; private void Awake() { button = GetComponent(); } pu..
Animation CurveEaseInOut 같은 커브를 지원하는 클래스이다.public AnimationCurve curve = AnimationCurve.Linear(0,0,1,1);Vector3 newPosition = Vector3.Lerp(itemBeginPOS, boxTransform.position, curve.Evaluate(t / duration));     Item Spawner아이템을 동적으로 생성하는 spawner를 만들어 보자.using System.Collections;using System.Collections.Generic;using UnityEngine;public class ItemSpawner : MonoBehaviour{ public GameObject itemP..
문제 설명구사과의 방에는 난로가 하나 있다. 구사과는 절약 정신이 투철하기 때문에, 방에 혼자 있을 때는 난로를 되도록 켜지 않는다. 구사과는 방에 친구가 왔을 때는 항상 난로를 켠다.오늘은 N명의 친구들이 구사과의 집에 방문하는 날이다. 구사과는 친구들을 쉽게 구분하기 위해 1부터 N까지 번호를 매겼다. i번째 친구는 구사과의 방에 시간 Ti에 도착하고, 시간 Ti+1에 나간다. 구사과의 방은 좁기 때문에, 한 번에 한 명만 방문할 수 있다. 즉, 방안에는 항상 구사과를 포함해 2명 이하의 사람만 있게 된다.구사과는 난로를 아무 때나 켤 수 있고, 끌 수 있다. 난로를 켜려면 성냥을 이용해야 한다. 오늘 구사과는 총 K개의 성냥을 가지고 있다. 따라서, 최대 K번 난로를 켤 수 있다. 가장 처음에 난로..
캐릭터 점프캐릭터의 점프 기능을 추가해 보자.우선, Space를 입력하여 동작할 수 있도록 입력 Action을 추가하자.private InputAction Jump_Input;void Start(){ ... Jump_Input = Input.actions["Jump"]; ...}이를, Update함수에서 입력을 감지해 점프가 실행되도록 하면 된다.추가로 Animation까지 적용해 보자.private bool IsGround = true;public bool Ground{ get => IsGround; set => IsGround = value;}void Update(){ Vector2 moveValue = Move_Input.ReadValue(); if (moveVal..
hvv_an
이미난