안녕 얘들 아, 내 첫 번째 앱 만들기. 나는 이것이 꽤로드 된 질문이지만 스크립트 코드가 다르기 때문에 예제를 따르는 데 어려움을 겪고 있음을 안다. 2D 플랫폼 러너를 만들고 있습니다. 시작하기 전에, 모든 물리학은 아니더라도 플랫폼, 환경 및 대다수를 만들었습니다. 이 시점에서 플레이어는 단지 하나의 서클 (그냥 장소 홀더)입니다. 원은 왼쪽에서 오른쪽으로 이동하고 점프 할 수 있습니다. 이제 실제 플레이어 스프라이트를 만들고 걷고, 뛰고, 유휴 상태로 애니메이션을 만들었습니다. 새 스프라이트 애니메이션을 스크립트뿐만 아니라 현재 서클 자리 표시 자에 어떻게 적용합니까? 다음 단계는 애니메이터에 들어가서 전환 작업을 시작하는 것입니다. Im은 현재 스크립트에 애니메이션을 추가하는 방법을 모르겠습니다. 이것이 어려움이 될 것이라는 것을 알고 있었고 필요한 정보가 있으면 알려 주시기 바랍니다. 고마워요.Unity에 플레이어에게 애니메이션을 적용하는 방법
내 서클 플레이어/자리 표시 자에 현재 연결된 "Controls.cs"입니다. 내 CheckGround가 첨부되어 있습니다. 다른 모든 것들은 그가 점프하고있는 플랫폼과 관련이 있어야하고 나는 바뀔 것이라고 생각하지 않는다. 다시 말하지만, 나는 현재의 서클/자리 표시 자 대신 자리를 잡고 싶은 스프라이트를 걷고, 점프하고 유휴 상태로 만듭니다. 왼쪽 및 오른쪽 화살표를 누를 때 걷는 애니메이션을, 점프 버튼을 눌렀을 때 재생할 펌프 애니메이션을, 그리고 플레이어가 그냥 멈추었을 때 유휴 애니메이션을 재생해야합니다. 다시 한번 고마워요!
using UnityEngine;
using System.Collections;
public class Controls : MonoBehaviour
{
public Rigidbody2D rb;
public float movespeed;
public float jumpheight;
public bool moveright;
public bool moveleft;
public bool jump;
public Transform groundCheck;
public float groundCheckRadius;
public LayerMask whatIsGround;
private bool onGround;
// Use this for initialization
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void FixedUpdate()
{
onGround = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround);
}
// Update is called once per frame
void Update()
{
if (Input.GetKey(KeyCode.LeftArrow))
{
rb.velocity = new Vector2(-movespeed, rb.velocity.y);
}
if (Input.GetKey(KeyCode.RightArrow))
{
rb.velocity = new Vector2(movespeed, rb.velocity.y);
}
if (Input.GetKey(KeyCode.Space))
{
if (onGround)
{
rb.velocity = new Vector2(rb.velocity.x, jumpheight);
}
}
if (jump)
{
if (onGround)
{
rb.velocity = new Vector2(rb.velocity.x, jumpheight);
}
jump = false;
}
if (moveright)
{
rb.velocity = new Vector2(movespeed, rb.velocity.y);
}
if (moveleft)
{
rb.velocity = new Vector2(-movespeed, rb.velocity.y);
}
}
}
고마운 사람. 미안해. 너에게 돌아가려면 시간이 좀 걸렸어. 나는 그 자습서를 지금 시작했고 그 일은 아주 잘 진행되었다! – Andrew