using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Stage1SceneMain : MonoBehaviour
{
//플레이어
[SerializeField]
private PlayerController playerController;
//몬스터
[SerializeField]
private GameObject monsterGo;
//조이스틱
[SerializeField]
private CJoystick joystick;
//왼쪽 문
[SerializeField]
private DoorController leftDoorController;
//오른쪽 문
[SerializeField]
private DoorController rightDoorController;
//페이드인
[SerializeField]
private Image dim;
//NPC 텍스트
[SerializeField]
private Text text;
//TargetQuad
[SerializeField]
private GameObject targetQuadGo;
//반지름
private float radius = 30f;
// Start is called before the first frame update
void Start()
{
//씬 전환시 페이드인
this.StartCoroutine(this.CoFadeInAndSceneManager());
//포탈에 닿았을 때
this.playerController.reachPortal = () => {
//포탈 삭제하고
//Destroy(this.portalGo.gameObject);
//문 열기
//this.leftDoorController.OpenDoor();
//this.rightDoorController.OpenDoor();
};
//문에 닿았을 때
this.playerController.reachDoor = () => {
//씬 전환하기
//this.FadeOutAndSceneManager();
};
}
// Update is called once per frame
void Update()
{
//수평, 수직 좌표 구하고 moveDir에 넣기
float h = this.joystick.Horizontal;
float v = this.joystick.Vertical;
Vector3 moveDir = new Vector3(h, 0, v);
//moveDir이 Vector3.zero일 경우
if (moveDir == Vector3.zero)
{
//정지 애니메이션 실행
this.playerController.PlayAnimation(EnumState.ePlayerState.Idle);
}
else // (0,0,0)이 아닐 경우
{
this.playerController.Move(moveDir);
}
//OverlapSphere로 몬스터 인식하기
int layerMask = 1<<LayerMask.NameToLayer("Monster");
Collider[] hitColliders = Physics.OverlapSphere(this.playerController.transform.position, this.radius, layerMask);
//인식되는 물체 이름 로그찍기
foreach (Collider cols in hitColliders)
{
//몬스터와 나의 거리 구하기
Vector3 disDiffrence = cols.transform.position - this.playerController.transform.position;
//몬스터와 내가 가까운지 확인하기
float distance = Vector3.Distance(cols.transform.position, this.playerController.transform.position);
//몬스터와 나의 거리 선으로 그리기
DrawArrow.ForDebug(this.playerController.transform.position, disDiffrence, 0.01f, Color.green, ArrowType.Solid);
}
}
private IEnumerator CoFadeInAndSceneManager()
{
Color color = this.dim.color;
while (true)
{
color.a -= 0.01f;
this.dim.color = color;
if(color.a <= 0)
{
break;
}
yield return null;
}
}
}
'유니티 심화' 카테고리의 다른 글
절대강좌 유니티 - Button, Hpbar, TestMesh pro (0) | 2023.08.25 |
---|---|
절대강좌 유니티 - UI (0) | 2023.08.25 |
절대강좌 유니티 - 혈흔효과, 몬스터 공격효과, 델리게이트, 죽으면 강남스타일, 본 구조, 충돌감지, 몬스터 사망 (0) | 2023.08.24 |
HeroShooter - FadeIn, FloatingJoystick, 닭이미지, 텍스트, Ray (0) | 2023.08.23 |
절대강좌 유니티 - 애니메이션, 몬스터 [피격, 공격, 추적, 정지] (0) | 2023.08.23 |