Unity3D 컨트롤 Easytouch 주인공 이동 제어

본 논문 의 사례 는 유 니 티 3D 컨트롤 Easytouch 가 주인공 의 이동 을 제어 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
개발 절차:
1.Charactor 컨트롤 러 자원 팩 가 져 오기;
2.Easy Touch 3.1.0 의 자원 팩 가 져 오기;
3.캐릭터 모델 만 들 기;
4.바닥 으로 Plane 을 새로 만든다.
5.조 이 스틱 을 새로 만 들 고 다음 그림 과 같은 절 차 를 추가 합 니 다.

6.로 커 의 속성 설정:

주:그림 의 속성 을 반드시 설정 해 야 합 니 다.그렇지 않 으 면 로 커 가 반응 하지 않 는 상황 이 발생 합 니 다!!
7.주인공(즉,Easytouch 로 커 가 이동 을 제어 하 는 모델 이 필요 합 니 다)에 게 로 커 의 이 벤트 를 받 아들 이 고 주인공 의 이동 을 제어 하 는 스 크 립 트 MoveController 를 새로 만 듭 니 다.
코드 는 다음 과 같 습 니 다:

using UnityEngine;
using System.Collections;
 
public class MoveController : MonoBehaviour
{
  void OnEnable()
  {
    EasyJoystick.On_JoystickMove += OnJoystickMove;
    EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd;
  }
 
  //       
  void OnJoystickMoveEnd(MovingJoystick move)
  {
    //   ,    idle 
    if (move.joystickName == "MoveJoystick")
    {
      animation.CrossFade("idle");
    }
  }
 
  //      
  void OnJoystickMove(MovingJoystick move)
  {
    if (move.joystickName != "MoveJoystick")
    {
      return;
    }
 
    //            
    float joyPositionX = move.joystickAxis.x;
    float joyPositionY = move.joystickAxis.y;
 
 
    if (joyPositionY != 0 || joyPositionX != 0)
    {
      //       (      +     ) 
      transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));
      //       (       ) 
      transform.Translate(Vector3.forward * Time.deltaTime * 5);
      //       
      animation.CrossFade("run");
    }
  }
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기