简易2D人物移动[unity2d]
时间:2020-03-10 发布者: 访问量:3056
using System.Collections; using System.Collections.Generic; using UnityEngine; public class player1 : MonoBehaviour { /// <summary> /// 人物速度 /// </summary> public float Speed = 5f; /// <summary> /// 移动状态枚举 /// </summary> public enum WalkIdle { Standalone, Up, Down, Left, Right, LeftUp, LeftDown, RightUp, RightDown } void FixedUpdate() { // 人物移动 switch (GetWalkIdle()) { case WalkIdle.Standalone: break; case WalkIdle.Up: transform.Translate(Vector3.up * Time.deltaTime * Speed); break; case WalkIdle.Down: transform.Translate(Vector3.down * Time.deltaTime * Speed); break; case WalkIdle.Left: transform.Translate(Vector3.left * Time.deltaTime * Speed); break; case WalkIdle.Right: transform.Translate(Vector3.right * Time.deltaTime * Speed); break; case WalkIdle.LeftUp: transform.Translate(Vector3.up * Time.deltaTime * Speed * 0.707f); transform.Translate(Vector3.left * Time.deltaTime * Speed * 0.707f); break; case WalkIdle.LeftDown: transform.Translate(Vector3.down * Time.deltaTime * Speed * 0.707f); transform.Translate(Vector3.left * Time.deltaTime * Speed * 0.707f); break; case WalkIdle.RightUp: transform.Translate(Vector3.up * Time.deltaTime * Speed * 0.707f); transform.Translate(Vector3.right * Time.deltaTime * Speed * 0.707f); break; case WalkIdle.RightDown: transform.Translate(Vector3.down * Time.deltaTime * Speed * 0.707f); transform.Translate(Vector3.right * Time.deltaTime * Speed * 0.707f); break; } } /// <summary> /// 获得人物行走状态 /// </summary> /// <returns></returns> public WalkIdle GetWalkIdle() { if (Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.A)) { return WalkIdle.LeftUp; } else if (Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.D)) { return WalkIdle.RightUp; } else if (Input.GetKey(KeyCode.S) && Input.GetKey(KeyCode.A)) { return WalkIdle.LeftDown; } else if (Input.GetKey(KeyCode.S) && Input.GetKey(KeyCode.D)) { return WalkIdle.RightDown; } else if (Input.GetKey(KeyCode.W)) { return WalkIdle.Up; } else if (Input.GetKey(KeyCode.A)) { return WalkIdle.Left; } else if (Input.GetKey(KeyCode.S)) { return WalkIdle.Down; } else if (Input.GetKey(KeyCode.D)) { return WalkIdle.Right; } return WalkIdle.Standalone; } }
相关信息
用户评论
猜你喜欢
生活励志
生活文摘
生活福利
生活编程