Unity 키보드 WASD 물체 이동 실현

본 논문 의 사례 는 유 니 티 키보드 WASD 가 물체 이동 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
1.먼저 장면 에 Capsule 을 만들어 메 인 카 메 라 를 물체 아래로 끌 어 내린다.

2.캡슐 물체 에 스 크 립 트 를 걸 고 WASD 는 이동 방향 을 제어 하 며,스페이스 바 연 Y 축 은 위로 이동 하고,F 연 Y 축 은 아래로 이동 합 니 다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class MoveCam : MonoBehaviour
{
 private Vector3 m_camRot;
 private Transform m_camTransform;//   Transform
 private Transform m_transform;//      Transform
 public float m_movSpeed=10;//    
 public float m_rotateSpeed=1;//    
 private void Start()
 {
 m_camTransform = Camera.main.transform;
 m_transform = GetComponent<Transform>();
 }
 private void Update()
 {
 Control();
 }
 void Control()
 {
 if (Input.GetMouseButton(0))
 {
  //        
  float rh = Input.GetAxis("Mouse X");
  float rv = Input.GetAxis("Mouse Y");
 
  //      
  m_camRot.x -= rv * m_rotateSpeed;
  m_camRot.y += rh*m_rotateSpeed;
 
 }
 
 m_camTransform.eulerAngles = m_camRot;
 
 //               
 Vector3 camrot = m_camTransform.eulerAngles;
 camrot.x = 0; camrot.z = 0;
 m_transform.eulerAngles = camrot;
 
 //   3      
 float xm = 0, ym = 0, zm = 0;
 
 //   W    
 if (Input.GetKey(KeyCode.W))
 {
  zm += m_movSpeed * Time.deltaTime;
 }
 else if (Input.GetKey(KeyCode.S))//   S    
 {
  zm -= m_movSpeed * Time.deltaTime;
 }
 
 if (Input.GetKey(KeyCode.A))//   A    
 {
  xm -= m_movSpeed * Time.deltaTime;
 }
 else if (Input.GetKey(KeyCode.D))//   D    
 {
  xm += m_movSpeed * Time.deltaTime;
 }
 if (Input.GetKey(KeyCode.Space) && m_transform.position.y <= 3)
 {
  ym+=m_movSpeed * Time.deltaTime;
 }
 if (Input.GetKey(KeyCode.F) && m_transform.position.y >= 1)
 {
  ym -= m_movSpeed * Time.deltaTime;
 }
 m_transform.Translate(new Vector3(xm,ym,zm),Space.Self);
 }
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기