안녕하십니까!! 힘법사입니다. 오늘은 유니티에서 물체를 던져보겠습니다. 그 전에 보고 오시면 좋은 게시물 네개 말씀해드리겠습니다.
유니티 오브젝트 텍스처(Texture)지정하기(Unity) (tistory.com)
해당 게시물에서는 오늘 실습에 사용되는 오브젝트의 텍스처를 어떻게 설정했는지 설명해두었습니다.
실습에 사용된 맵은 어떤 방식으로 제작됬는지 궁금하신 분은
3D map 제작 / 테라인(Terrain) (Unity) (tistory.com)
이 게시물을 참고해주시면 됩니다.
마지막으로 물체에 중력, 충돌과 같은 물리 법칙이 어떻게 적용됬는지 궁금하신 분은 아래 두 게시물을 참고해주세요.
게임 오브젝트 물리법칙 적용(Rigidbody)(Unity) (tistory.com)
게임 오브젝트 물리법칙 적용(Colider)(Unity) (tistory.com)
사전 작업으로 Colider , Terrain, Rigidbody를 미리 설정해주고 다음 그림처럼 오브젝트들을 배치했습니다.
프로그래밍을 통해서 마우스를 클릭하면 좌측의 돌이 날라가 상자를 맞추도록 해보겠습니다.
먼저 C# Script를 만들어주고 이름을 StoneController로 바꿔주세요
그리고 내부 프로그래밍을 다음과 같이 해주시면 됩니다. 주석에 모든 설명이 있으시니 이해하기 어렵지 않으실 겁니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class StoneController : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
GetComponent<Rigidbody>().isKinematic = true;
//시작과 동시에 물체가 추락하지 않도록 하기 위한 코드
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0)) // 마우스 클릭시 발동
{
GetComponent<Rigidbody>().isKinematic = false;
//물체가 여러 물리력을 받도록 허용하는 코드
Shoot();
// 발사!!
}
}
public void Shoot()
{ //Y축으로 200만큼 Z 축으로 2000만큼의 힘으로 발사시키는 함수
Vector3 speed = new Vector3(0, 200, 2000);
GetComponent<Rigidbody>().AddForce(speed);
}
}
네 해당코드를 써주시고 저장해주시면 실제 물리법칙 아래에서처럼 자연스럽게 돌이 날라갑니다
아주 잘 작동하는군요!
다음 시간에는 돌을 원하는 만큼 던질 수 있도록 Prefeb을 만드는 게시물을 포스팅하겠습니다.
긴글 읽어주셔서 감사합니다.
'Unity' 카테고리의 다른 글
Ray(레이) / 클릭한 곳으로 물체 쏘기 (Unity) (0) | 2020.12.26 |
---|---|
프리팹(Prefeb) / 오브젝트 만들기 (Unity) (0) | 2020.12.26 |
유니티 오브젝트 텍스처(Texture)지정하기(Unity) (2) | 2020.12.26 |
3D map 제작 / 테라인(Terrain) (Unity) (0) | 2020.12.24 |
메인 카메라 이동 (Unity) (0) | 2020.12.21 |