먼저 내 질문을 모두 읽어 주셔서 감사합니다 나는 지하철 표면과 같은 게임을 계속 실행하기 위해 노력하고 있습니다. update()
함수를 시작했습니다. payerControl
스크립트 py가 강체가 앞으로 나아갈 수 있도록 강제 실행했습니다. 코드에서 mintiond로 10의 속도로 키보드에서 upArrow를 누를 때 점프 입력을 추가했지만 점프 부울이 true가되기 때문에 문자가 때때로 점프하고 대부분의 시간에 점프하지 않습니다. 1 초도 채 안 간 다음 다시 false로 돌아가므로 점프 과정을 2 초간 유지할 수있는 방법이 있습니까?유니티 5 문자 점핑
문자 제어 코드 :
using UnityEngine;
using System.Collections;
public class player : MonoBehaviour {
public Animator anim;
public Rigidbody rbody;
public float verticalJumpPower;
public float horizantalJumpPower;
public float playerVelocity;
// Use this for initialization
void Start()
{
anim = GetComponent<Animator>();
rbody = GetComponent<Rigidbody>();
verticalJumpPower = 50f;
horizantalJumpPower = 30f;
playerVelocity = 10f;
}
// Update is called once per frame
void Update()
{
rbody.velocity = new Vector3(rbody.velocity.x,rbody.velocity.y,playerVelocity*Time.deltaTime);
rbody.transform.rotation = Quaternion.identity;
if(Input.GetKeyDown (KeyCode.UpArrow))
{
anim.SetBool("jump",true);
rbody.AddForce(new Vector3(0,verticalJumpPower,horizantalJumpPower));
}
else
{
anim.SetBool("jump", false);
}
if(Input.GetKey(KeyCode.LeftArrow))
{
Vector3 currentPosition = rbody.transform.position;
Vector3 leftPosition = new Vector3(rbody.transform.position.x+Constants.PLAYER_LEFT_DISTANCE, rbody.transform.position.y,rbody.transform.position.z);
rbody.transform.position = Vector3.Lerp(currentPosition,leftPosition,Time.deltaTime);
}
if(Input.GetKey(KeyCode.RightArrow))
{
Vector3 currentPosition = rbody.transform.position;
Vector3 rightPosition = new Vector3(rbody.transform.position.x+Constants.PLAYER_RIGHT_DISTANCE, rbody.transform.position.y,rbody.transform.position.z);
rbody.transform.position = Vector3.Lerp(currentPosition,rightPosition,Time.deltaTime);
}
if(Input.GetKey(KeyCode.DownArrow))
{
anim.SetBool("isSlide",true);
rbody.velocity = new Vector3(0f, 0f,5f);
anim.applyRootMotion = false;
}
else
{
anim.SetBool("isSlide", false);
anim.applyRootMotion = true;
}
}
}
아마도 필요한 것 는 문자가 접지 된 때를 감지하는 논리이며,'anim.SetBool ("jump", false)'만 설정합니다. 이 체크를 수행하는 방법에 대한 많은 아이디어가 있습니다. 검색하고, 구현하고, 새 코드로이 질문을 업데이트하는 데 문제가 있거나 (크게 다른 경우 새로운 질문을하십시오). 현재이 질문은 너무 광범위합니다. 기본적으로 우리는 여러분의 게임 객체가 설정되는 방법에 대한 가정을하고 논리를 처음부터 작성해야하기 때문입니다. – Serlite
또한 점핑 애니메이션이 정확히 무엇입니까? 캐릭터가 공중에있는 한 놀아야하는 것이거나 캐릭터가 처음 점프를 수행하는 순간입니까? 이는 또한 필요한 솔루션에 영향을 미칩니다. – Serlite