유니티 빌드 문제

유니티 빌드 문제

작성일 2024.05.17댓글 1건
    게시물 수정 , 삭제는 로그인 필요


게임을 빌드하고 플레이만 하면 캐릭터 움직임 쪽에서 문제가 생깁니다 다른 전체적인 코드에는 문제가 없으며 PlayerController에서 문제가 생기는거 같습니다.

using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.SearchService;

public class PlayerController : MonoBehaviour
{
    public static PlayerController instance;

    [Header("Movement Value")]
    public float CurrentSpeed;
    public float WalkSpeed;
    public float SprintSpeed;
    public float CrouchSpeed;

    public float MouseX = 0;
    public float MouseSensX;

    [Header("Bool Value")]
    public bool Sprint;
    public bool Crouch;

    //Aother-----------------------------------------------------------------------------//

    Rigidbody rb;
    CapsuleCollider CC;

    // Start is called before the first frame update  
    void Start()
    {
        rb = GetComponent<Rigidbody>();
        CC = GetComponent<CapsuleCollider>();
        instance = this;
        CurrentSpeed = WalkSpeed;
        Sprint = false;
        Crouch = false;
    }

    // Update is called once per frame
    void Update()
    {
        //Controller();
    }

    private void FixedUpdate()
    {
        CamControl();
        HandleMovement();        
    }

    /*public void Controller()
    {
        float h = Input.GetAxisRaw("Horizontal");
        float v = Input.GetAxisRaw("Vertical");

        Vector3 moveDir = new Vector3(h, 0, v);

        transform.position += CurrentSpeed * Time.deltaTime * transform.TransformDirection(moveDir);

        if (StateManager.instance.STBAR.value > 0 && h > 0 || h < 0 || v > 0 || v < 0)
        {
            if (!Sprint && Input.GetKeyDown(KeyCode.LeftShift) && !Crouch && StateManager.instance.STBAR.value > 0)
            {
                CurrentSpeed = SprintSpeed;
                Sprint = true;
            }
            if (Sprint && Input.GetKeyUp(KeyCode.LeftShift) && !Crouch)
            {
                CurrentSpeed = WalkSpeed;
                Sprint = false;
            }
            if (Sprint && StateManager.instance.STBAR.value > 0 && !Crouch)
            {
                StateManager.instance.SteminaMinus();
            }
            if (StateManager.instance.STBAR.value > 0 && h == 0 && v == 0 && Sprint)
            { 

            }
        }
        if (h == 0 && v == 0 && Sprint)
        {
            CurrentSpeed = WalkSpeed;
            Sprint = false;
        }
        if (StateManager.instance.STBAR.value <= 0 && !Crouch)
        {
            CurrentSpeed = WalkSpeed;
            Sprint = false;
        }
        if(Input.GetKeyDown(KeyCode.C) && !Crouch)
        {
            CurrentSpeed = CrouchSpeed;
            this.gameObject.transform.position += new Vector3(0, -1, 0);
            this.gameObject.transform.localScale = new Vector3 (1.8f, 0.9f, 1.8f);
            Crouch = true;
        }
        if(Input.GetKeyUp(KeyCode.C) && Crouch && !Sprint)
        {
            CurrentSpeed = WalkSpeed;
            this.gameObject.transform.position += new Vector3(0, 0, 0);
            this.gameObject.transform.localScale = new Vector3(1.8f, 1.8f, 1.8f);
            Crouch = false;
        }
        if (Input.GetKeyUp(KeyCode.C) && Crouch && Sprint)
        {
            CurrentSpeed = SprintSpeed;
            this.gameObject.transform.position += new Vector3(0, 0, 0);
            this.gameObject.transform.localScale = new Vector3(1.8f, 1.8f, 1.8f);
            Crouch = false;
        }
    }*/
    private void HandleMovement()
    {
        float h = Input.GetAxisRaw("Horizontal");
        float v = Input.GetAxisRaw("Vertical");

        Vector3 moveDir = new Vector3(h, 0, v).normalized;
        transform.position += CurrentSpeed * Time.deltaTime * transform.TransformDirection(moveDir);

        bool isMoving = h != 0 || v != 0;

        // Handle Sprinting
        if (!Sprint && Input.GetKeyDown(KeyCode.LeftShift) && !Crouch && isMoving && StateManager.instance.STBAR.value > 0)
        {
            StartSprinting();
        }

        if (Sprint && (Input.GetKeyUp(KeyCode.LeftShift) || StateManager.instance.STBAR.value <= 0 || Crouch))
        {
            StopSprinting();
        }

        if (Sprint && isMoving && StateManager.instance.STBAR.value > 0 && !Crouch)
        {
            StateManager.instance.SteminaMinus();
        }

        // Handle Crouching
        if (Input.GetKeyDown(KeyCode.C) && !Crouch)
        {
            StartCrouching();
        }

        if (Input.GetKeyUp(KeyCode.C) && Crouch)
        {
            StopCrouching();
        }

        if (!isMoving && Sprint)
        {
            StopSprinting();
        }
    }

    private void StartSprinting()
    {
        CurrentSpeed = SprintSpeed;
        Sprint = true;
    }

    private void StopSprinting()
    {
        CurrentSpeed = WalkSpeed;
        Sprint = false;
    }

    private void StartCrouching()
    {
        CurrentSpeed = CrouchSpeed;
        transform.position += new Vector3(0, -1, 0);
        transform.localScale = new Vector3(1.8f, 0.9f, 1.8f);
        Crouch = true;
    }

    private void StopCrouching()
    {
        CurrentSpeed = Sprint ? SprintSpeed : WalkSpeed;
        transform.position += new Vector3(0, 1, 0);
        transform.localScale = new Vector3(1.8f, 1.8f, 1.8f);
        Crouch = false;
    }

    public void CamControl()
    {
        MouseX = Input.GetAxisRaw("Mouse X") * MouseSensX;

        transform.eulerAngles += new Vector3(0, MouseX, 0);
    }

    
}

 


#유니티 빌드 #유니티 빌드 오류 #유니티 빌드 세팅 #유니티 빌드 해상도 설정 #유니티 빌드 용량 줄이기 #유니티 빌드 후 디버그 #유니티 빌드 해상도 고정 #유니티 빌드 후 오류 #유니티 빌드 후 실행 안됨 #유니티 빌드 시간 단축

profile_image 익명 작성일 -

카메라와 관련된 입력 처리를 Update로 변경하시면 될 것 같아요.

보통 카메로 이동과 관련된 처리는 FixedUpdate보다 Update 문에서 처리합니다.

FixedUpdate는 물리 연산에 사용되기 때문에, 프레임레이트와 동기화되지 않을 수 있어서요.

유니티 빌드 오류

... ' 이런 오류가 뜨면서 빌드 저장이 안되네요 유니티문제인것같은데 어찌 해야할지 모르겠습니다 ㅠㅠ 유니티 짱 옷이나 머리...

유니티 안드로이드 빌드

... 유니티 안드로이드 빌드 후 스크립트가 작동하지 않는 문제는 다양한 원인이 있을 수 있습니다. 몇 가지 해결 방법을 제시해 드리겠습니다. 1. 스크립트 오류 확인...

유니티 모바일 빌드 에러

... 유니티 모바일 빌드를 하려고 하면 에러 메시지가 4개... Unity 캐시를 지우면 때때로 빌드 문제를 해결할 수 있습니다....

유니티WebGL 빌드 오류 문제

유니티로 게임을 만들고 WebGL로 빌드를 할려고 하니까 invalid build path: c:/users/user/desktop/coding/block/swipe breakout clone1 unityengine.guiutility:processevent(int32, intptr) 이런...

유니티 빌드 오류

game 눌러서 미리 플레이해보면 캐릭터(유니티쨩) 잘만움직이는데 빌드하려고... 뭐가 문제일까요 ㅠ 유니티는 아무래도 혼자서 독학하기 많은 어려움이 있죠...

유니티 빌드 후 실행 안됨

유니티 PC 버전으로 빌드를 한 후에 실행을 했는데 첫 씬은 제대로 나오는데 다음... 이외 문제빌드된 애플리케이션의 로그를 확인해주세용 오류메세지나 경고가 뜨는지...

유니티 2d apk 빌드 문제해결좀 해주세요.

유니티에서 apk를 빌드할때는 문제 없는데 만들고 나면 apk파일이 0 byte라고 나오면서 핸드폰으로 실행이 아예 안되더라구요. 무슨 이유인가요? 해결은 어떻게 해야...