inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Tinh chất lập trình trò chơi Unity C# trong Retro

nòng xoay

동작이 안됩니다.

279

parkhyungjoo0619

3 câu hỏi đã được viết

0

강의해주신 내용과 같이 코딩을 했는데, 마우스 버튼을 눌렀다가 떼었을 때 세로 방향으로 돌지 않습니다. 

단계별로 state가 넘어가는지 확인하기 위해 디버그.로그 코드를 넣어 놓았습니다. 

제가 무엇을 잘못해서 동작하지 않는 것일까요? 답변 부탁드립니다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ShooterRotator : MonoBehaviour
{
    private enum RotateState
    {
        Idle,Vertical,Horizontal,Ready
    }
    private RotateState state = RotateState.Idle;

    public float verticalRoteteSpeed = 360f;

    public float horizontalRoteteSpeed = 360f;







    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if(state == RotateState.Idle)
        {
            if(Input.GetButtonDown("Fire1"))
            {
                state = RotateState.Horizontal;
            }
        }
        else if(state == RotateState.Horizontal)
        {
            if(Input.GetButton("Fire1"))
            {
                transform.Rotate(new Vector3(0,horizontalRoteteSpeed * Time.deltaTime,0));
            }
            else if(Input.GetButtonUp("Fire1"))
            {
                state = RotateState.Vertical;
                Debug.Log("1");
            }
            else if(state == RotateState.Vertical)
            {
                if(Input.GetButton("Fire1"))
                {
                   transform.Rotate(new Vector3(-verticalRoteteSpeed * Time.deltaTime,0,0));
                   Debug.Log("2");
                }
                else if(Input.GetButtonUp("Fire1"))
                {
                    state = RotateState.Ready;
                    Debug.Log("3");
                }
            }
        }
    }
}

C# unity

Câu trả lời 2

0

hwakyeom

            }
            else if(state == RotateState.Vertical)
            {

저 부분이 잘못됐네요 ㅎㅎ

state == Rotate.Vertical

조건문 체크가 

        if(state == RotateState.Idle)
        {
               ..{
               }
        }
        else if(state == RotateState.Horizontal)
        {
              ..{
               }
               else if(state == RotateState.Vertical)
              {
              }
        }

저렇게 Horizontal 조건문 내부에 들어가 있어요 ㅋㅋ

0

parkhyungjoo0619

안되서 계속 진도 나가니 switch case 문법을 알려주시네요.

이걸 사용하니 동작하네요. 

자문자답. 끝. 

코루틴 관련 질문 있습니다.

0

66

1

강의 업데이트 질문

0

89

1

궁금한 부분이 있어서 질문 남깁니다.

0

163

1

FreeLook 카메라 Zone 설정관련

0

115

1

와..정말 감탄이 나오네요..

0

146

1

추상 클래스에 대해 이해가 잘 안되었는데

0

118

1

IsTargetOnSight가 자꾸 false로 나와요.

0

105

2

레이캐스트 에셋 임포트하는방법을 모르겠어요.

0

87

1

레이케스트 에셋을 다운받았는데 임포트 방법을 모르겠습니다.

1

141

2

혹시 어드레서블 강좌 추가계획이 있으실까요?

0

126

1

시네머신 FreeLook 관련

0

223

1

텍스트 드래그 앤 드롭

0

378

2

안녕하세요 랜덤오브젝트 생성기에서 질문있습니다.

0

244

1

유니티 에디터 버전

0

375

1

text가 아닌 TextMeshPro를 사용해도 괜찮나요?

0

1733

2

상속 관련 질문입니다.

0

350

1

TPS 캐릭터 문제점 있습니다.

0

437

1

총을 쏴서 적을 맞췄을 때 저를 추적하는 코드는 어디 나와있나요??

0

278

0

github

0

305

0

wave 를 0으로 초기화해주는 부분이없는데 왜 0부터 시작하나요?

0

315

0

TPS게임 제작 Aim애니메이션 관련 질문 드립니다.

1

370

1

점프관련해서 UI버튼클릭을 통한 전달값에 대한 질문입니다.

0

306

1

인터페이스

1

239

0

혹시 본 강의에서 Dictionary 나온 파트가 있을까요?

0

270

0