Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 프로그래머스 #최소힙 #우선순위 큐
- 1인 게임 개발
- 정보처리기사
- 게임제작
- 유니티
- portal
- 유니티3d
- 1인 개발
- Vampire Survivors
- 토이 프로젝트
- 게임 개발
- Pong
- 유니티 3D
- 합격
- 퐁
- 게임 제작
- 정처기 필기
- 자바스크립트 게임
- Unity
- 1인 게임
- unity3d
- 3회차
- 자바스크립트
- 1인 게임 제작
- Unity2D
- Unity #Unity2D #Portal
- FPS
- 게임
- 필기
- 정처기
Archives
- Today
- Total
Coding Feature.
[Unity 2D] Portal 같은 게임 만들기 #4 포탈건 매커니즘 구현하기 1 (조준선 그리기) 본문
Toy Project/mini-portal [Unity2D]
[Unity 2D] Portal 같은 게임 만들기 #4 포탈건 매커니즘 구현하기 1 (조준선 그리기)
codingfeature 2024. 1. 6. 15:14포탈건을 만들어보기로 했습니다.
우선 플레이어가 포탈건으로 조준할 때 조준선이 화면에 보이도록 만들어보겠습니다.
유니티 엔진에서 제공하는 Line Renderer를 사용했습니다.
우선 Portal Gun Script 이라는 오브젝트를 생성하고 PortalGunScript.cs를 작성했습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PortalGunScript : MonoBehaviour
{
public LineRenderer m_lineRenderer;
public GameObject m_player;
public float aimLineLength;
Vector3 m_startPos;
Vector3 m_endPos;
Vector3 m_mousePos;
Vector3 m_mouseDir;
// Start is called before the first frame update
void Start()
{
aimLineLength = 10.0f;
}
// Update is called once per frame
void Update()
{
DrawAimLine();
}
void DrawAimLine()
{
m_mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); // 화면상 마우스 좌표 -> 게임상 좌표로 변환.
m_lineRenderer.enabled = true;
m_startPos = m_player.transform.position;
m_startPos.z = 0;
m_lineRenderer.SetPosition(0, m_startPos); // 캐릭터 좌표에서 선 시작.
m_endPos = m_mousePos;
m_endPos.z = 0;
m_mouseDir = (m_endPos - m_startPos);
m_mouseDir.Normalize(); // 캐릭터 To 마우스까지 방향의 단위벡터.
m_lineRenderer.SetPosition(1, m_mouseDir * aimLineLength + m_startPos);
}
}
Camera.main.ScreenToWorldPoint라는 매우 유용한 함수를 사용했습니다.
위 함수 인자에 스크린 상의 마우스 좌표를 입력해주어 게임 World 상 좌표로 변환시켜줍니다!
그리고 캐릭터에서부터 마우스위치까지의 단위벡터를 구하고 aimLineLength 만큼 곱해서 일정한 길이만큼 선의 길이가 늘어나도록 했습니다.
위 코드를 작성하는데에는 아래 글이 매우 큰 도움이 되었습니다!
아래 글에는 추가로 선의 길이를 제한하는 (Clamp) 기능도 구현하는 방법이 있으므로 궁금하시면 참고바랍니다.
Add an aiming line in Unity 2D. Objective: Show the player the aiming… | by Daniel Kirwan | Medium
다음은 조준선 방향으로 포탈을 생성하는 매커니즘을 구현해보도록 하겠습니다!
'Toy Project > mini-portal [Unity2D]' 카테고리의 다른 글
[Unity 2D] Portal 같은 게임 만들기 #6 포탈, 포탈건, 캐릭터의 버그 해결 (0) | 2024.01.08 |
---|---|
[Unity 2D] Portal 같은 게임 만들기 #5 포탈건 매커니즘 구현하기 2 (포탈 생성하기) (0) | 2024.01.07 |
[Unity 2D] Portal 같은 게임 만들기 #3 포탈 매커니즘 구현하기 2(속도 변환) (0) | 2024.01.05 |
[Unity 2D] Portal 같은 게임 만들기 #2 포탈 매커니즘 구현하기 1(위치 변환) (0) | 2024.01.05 |
[Unity 2D] Portal 같은 게임 만들기 #1 플레이어 움직임 구현. (1) | 2024.01.05 |