일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- OVR
- 길건너 친구들
- 팀프로젝트
- 드래곤 플라이트
- 유니티 GUI
- meta xr
- 가상현실
- 개발
- XR
- 멀티플레이
- 앱 배포
- 유니티 UI
- 모작
- 드래곤 플라이트 모작
- 팀 프로젝트
- 오큘러스
- HAPTIC
- Photon Fusion
- 오브젝트 풀링
- 개발일지
- VR
- 포트폴리오
- ChatGPT
- 연습
- Oculus
- 유니티 Json 데이터 연동
- meta
- input system
- CGV
- 유니티
Archives
- Today
- Total
EasyCastleUNITY
총알반사 본문
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestBullet : MonoBehaviour
{
private Rigidbody rBody;
[SerializeField]
private float moveSpeed = 1f;
[SerializeField]
private float rayLength = 1f;
// Start is called before the first frame update
void Start()
{
this.rBody = GetComponent<Rigidbody>();
this.StartCoroutine(this.Move());
}
// Update is called once per frame
void Update()
{
//총알 앞으로 ray발사
Ray ray = new Ray(this.transform.position, this.transform.forward);
RaycastHit hit;
if(Physics.Raycast(ray, out hit, this.rayLength))
{
if (hit.collider.CompareTag("Wall"))
{
Vector3 reflect = Vector3.Reflect(-this.transform.forward, hit.normal);
//회전
this.transform.rotation = Quaternion.LookRotation(-reflect.normalized);
}
}
}
private IEnumerator Move()
{
while (true)
{
this.transform.Translate(Vector3.forward * this.moveSpeed * Time.deltaTime);
yield return null;
}
}
}
OnCollisionEnter를 통해 구현하면, 충돌로 인해, 총알이 날아가는 궤적이 비틀린다.
그래서 Ray를 통해, 충돌처리를 구현한다.
'유니티 심화' 카테고리의 다른 글
Zombero를 레퍼런스한 프로젝트 (0) | 2023.08.22 |
---|---|
가장 가까운 무기 장착 (0) | 2023.08.21 |
충돌감지를 통한, 플레이어 회전 변경 (0) | 2023.08.21 |
[과제]궁수의 전설 이동 및 공격 만들기(2023.08.23 00:01분 최종완성) (0) | 2023.08.19 |
3D Space Shooter Test1 (0) | 2023.08.18 |