Notice
Recent Posts
Recent Comments
Link
박민혁의 개발
데바데 스킬 체크 구현 본문
public class SkillCheckMaster : MonoBehaviour
{
int random;
float angle;
bool clickCheck;
[HideInInspector] public A1205 target;
private PlayerStatHandler playerStatHandler;
private int movepower = 200;
public RectTransform targetTime;
public RectTransform targetZone;
bool key;
public GameObject nonePushBtn;
public GameObject pushBtn;
public float controlcheck;
public float time;
public bool btnControlBool;
public float givePower;
public float oldPower;
private void OnEnable()
{
random = Random.Range(60, 345);
targetZone.transform.rotation = Quaternion.Euler(0,0, random);
angle = 0;
key=true;
controlcheck = 0.25f;
time = 0f;
btnControlBool = false;
clickCheck = false;
nonePushBtn.SetActive(true);
pushBtn.SetActive(false);
}
public void Init(A1205 targetObj)
{
target = targetObj;
playerStatHandler = target.gameObject.GetComponent<PlayerStatHandler>();
oldPower = 0;
}
public void OnSkill(InputValue value)
{
if (key)
{
nonePushBtn.SetActive(false);
pushBtn.SetActive(true);
clickCheck = true;
if (angle >= random - 30 && angle <= random + 5)
{
PowerSet();
target.endCall(givePower);
}
else
{
PowerSet();
givePower = -givePower;
target.endCall(givePower);
}
key = false;
}
}
void Update()
{
if (!clickCheck)
{
angle += movepower * Time.deltaTime;
time += Time.deltaTime;
if (time >= controlcheck)
{
time = 0f;
BtnControl();
}
targetTime.transform.rotation = Quaternion.Euler(0, 0, angle);
if (angle>= 359)
{
clickCheck = true;
PowerSet();
givePower = -givePower;
target.endCall(givePower);
key = false;
}
}
}
private void BtnControl()
{
nonePushBtn.SetActive(btnControlBool);
pushBtn.SetActive(!btnControlBool);
btnControlBool = !btnControlBool;
}
private void PowerSet()
{
playerStatHandler.ATK.added -= givePower;
givePower = playerStatHandler.ATK.total * 0.2f;
}
}
현재 맞춘 값을 각도로 내가 유니티를 보며 맞췄는데
실제로 이런 식으로 작동 하는걸까? 는 장담 할수 없다
위의 코드에서 랜덤값을 60에서 부터 시작하기 때문에 너무 가까운 곳에 등장하여 스킬체크를 놓치는 부조리를 방지했다.
하지만 내가 의도한 대로 작동 되고 동작에 문제가 없기에 오케이
아래는 움짤
f를 누를시 빨간선이 멈춘다 하지만 테스트 씬에 무작정 파고 넣은것이기 때문에
게임 매니저가 없어 멈추는 장면은 없다
'TIL' 카테고리의 다른 글
의외로 심플한 블랙홀 구현 (0) | 2023.12.19 |
---|---|
상태이상 구현하기 그런데 최적화를 곁들인 (0) | 2023.12.19 |
유니티 유도 미사일 (1) | 2023.12.19 |
특정 대상 중심으로 원하는 방향에 오브젝트 생성 , 마우스 방향으로 오브젝트 생성 (0) | 2023.12.19 |
컴포넌트 체크 이렇게 하기 (1) | 2023.12.19 |