Unity

Ray(레이) / 클릭한 곳으로 물체 쏘기 (Unity)

힘법사 2020. 12. 26. 22:46
728x90

 저번 포스팅 까지 물체를 쏘는 방법에 대해 설명드렸습니다. 여기까지는 물체를 쏘는 방향을 정할 수 가 없었죠 내용이 궁금하신분은 아래 URL로 날아가보시면 됩니다!

프리팹(Prefeb) / 오브젝트 만들기 (Unity) (tistory.com)

 

프리팹(Prefeb) / 오브젝트 만들기 (Unity)

안녕하십니까, 힘법사 입니다. 이번 포스팅에서는 프리팹을 통해서 계속해서 오브젝트를 복사해내는 방법을 보여드리겠습니다. AddForce Method를 이용한 물체 던지기 / 오브젝트 던지기(Unity) (tistor

himbopsa.tistory.com

 오늘 해볼 것은 Ray Class를 이용해 클릭한 곳으로 돌 덩이가 날아가도록 해보겠습니다.

 이전 과정을 모두 따라오셨다면 오늘 과정은 매우 심플합니다. 코드 몇줄만 추가해주시면 됩니다!

 기존에 있는 StoneGenerator C# script를 열어줍니다.

 코드를 단순하게 아래와 같이 수정해줍니다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class StoneGenerator : MonoBehaviour
{
    // Start is called before the first frame update
    public GameObject StonePrefeb; //GameObject 선언
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {   //stone을 생성하고 발사!
            GameObject stone = Instantiate(StonePrefeb) as GameObject;
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // ray class
            Vector3 shooting = ray.direction; // 방향 구하기
            shooting = shooting.normalized * 2000; // 발사하는 힘 설정
            stone.GetComponent<StoneController>().Shoot(shooting);
        }
    }
}

이게 전부입니다! 이제 게임다운 모습을 조금 갖추겠네요 한번 시연해보겠습니다.

 

동영상. 시연 영상

매우 훌륭하네요, 전 보다 훨씬 역동적으로 동작합니다.

다음에는 더 세밀한 디자인에 신경쓰는 글을 올리려 합니다.

다음에 뵙겠습니다!!!

728x90