Branch(브랜치) : 프로젝트 소스코드나 파일을 변경하거나 또는 기능을 추가할 때 작업하는 개별 공간

New Branch





Leave선택, 변경된 내용을 branch에 내버려두고 다른 branch로 변경함

변경된 내용이 사라짐


restore

다시 생김

새로 하나 만들려하면 분기가 뜸
어디를 기반으로 branch를 만들건가

Bring선택

__________________________________________________________________
시야에 플레이어가 들어와야 추적하는 적 ai만들기
public float viewRadius = 15f; //적 캐릭터 시야 사정거리
[Range(0, 360)]
public float viewAngle = 120f; //적 캐릭터 시야각 범위
void Start()
{
}
public Vector3 CirclePoint(float angle)
{
angle += this.transform.eulerAngles.y; // 로컬 좌표계 기준으로 설정 하기 위해 적 캐릭터의 y축 회전값을 더함
//원형의 좌표를 구하는 공식 : Mathf.Deg2Rad = PI * 2 / 360
return new Vector3(Mathf.Sin(angle * Mathf.Deg2Rad), 0, Mathf.Cos(angle * Mathf.Deg2Rad));
//일반 각도를 라디안 각도로 변환
}
유니티 Editor
유니티 IDE(프로그램을 만드는 프로그램)를 구성하는 API집합이면, 런타임시에 다른 스크립트에서 참조 할 수 없다.
디자인 시점에서만 사용할 수 있는 클래스로써 Window 또는 인스펙터의 UI를 자유롭게 구성하거나 확장할 수 있다.
즉 씬 화면에서만 보인다.


public class FOVEditor : Editor
{
private void OnSceneGUI()
{
SwatFov fov = (SwatFov)target; //FoV 스크립트의 인스턴스를 가져온다
Vector3 fromAnglePos = fov.CirclePoint(-fov.viewAngle * 0.5f); //원주 위의 시작점의 좌표를 계산 (주어진 각도의 절반만큼씩 좌우로
//시작점과 끝점을 맞춤) 시작점만 맞추면 각도를 전달하기 때문에
//끝점은 안만들어도 됨
Handles.color = Color.white; //시야각을 표현하기 위한 핸들의 색깔
Handles.DrawSolidArc( //반지름 그리는 함수
fov.transform.position, //원의 중심 좌표
Vector3.up, //회전 기준 축(y축)
fromAnglePos, // 부채꼴의 시작점 좌표
fov.viewAngle, //시야각 부채꼴의 각도
fov.viewRange //부채꼴의 반지름
);
Handles.Label( // 씬 화면에 라벨을 추가해서 텍스트로 표시하게 해주는 함수
fov.transform.position + Vector3.up * 2f, // 라벨 위치
"Fov Range : " + fov.viewRange + "\n" + "Fov Angle : " + fov.viewAngle //적을 글
);
}
}
Editor폴더가 예약어라서 알아서 적용된다

결과물
IEnumerator CheckState()
{
yield return new WaitForSeconds(1); // 1초 대기
// 오브젝트 풀에 생성 시, 다른 스크립트에서 초기화를 위해 대기
while (!isDie)
{
//Debug.Log(this.state);
if (state == eState.Die) yield break;
float dist = Vector3.Distance(this.transform.position, playerTr.position);
if (dist <= attackDist)
{
if (fov.isViewPlayer())
this.state = eState.Attack; // 사이에 장애물 없으면 공격
else
this.state = eState.Trace; // 아니면 마저 추적
}
else if (this.fov.isTracePlayer())
{
this.state = eState.Trace;
}
else
{
this.state = eState.Patrol;
}
yield return ws;
}
}
기존에 거리에 따라서만 하던걸 변경
________________________________________________________
장애물 피하는 카메라

저거 누르면 컴포넌트가 하나 붙음

Avoid Obstacle : 위에 장애물로 정해둔 Collider를 피함
그 아래는 피하는 방식
______________________________________________
지정된 장소에서만 점프하는 off mesh

Start : 점프할곳
End : 점프해서 도착할 곳
Cost : 저거 점프하는거에 할당할 비용(agent는 a* 알고리즘 기반이라 비용이 낮은쪽으로 가려함)
Bidirectional : 양방향으로 이동
'2025유니티수업' 카테고리의 다른 글
| 0702 유니티(RPG 카메라 무빙) (0) | 2025.07.02 |
|---|---|
| 0701 유니티(NavMeshObstacle, 라이트맵, 씬 합치기) (5) | 2025.07.01 |
| 0627 유니티(Scriptable Object, Raycast 총 발사) (0) | 2025.06.27 |
| 0626 깃허브 , 데이터 저장/불러오기 (1) | 2025.06.26 |
| 0625 비주얼 스튜디오 코드, 깃허브, 유니티(오쿨루전 컬링) , 유니티 button navigation (0) | 2025.06.25 |