欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【unity】控制角色移动与2D的图片转向

程序员文章站 2022-04-01 09:43:11
...
using System.Collections;
using System.Collections.Generic;
using System.Net.Mime;
using UnityEngine;

public class Player : MonoBehaviour
{
    private SpriteRenderer sr;
    public Sprite[] tankSprite;// 放入不同方向的角色的转向的图片,分别是 上 右 下 左
    
    private void Awake()
    {
        sr = GetComponent<SpriteRenderer>();
    }


    public float moveSpeed = 3; // 定义移动速度
    // Start is called before the first frame update
    void Start()
    {
        
    }
    private void FixedUpdate() //fixedupdate:使每一帧物体所受的牛顿力相同,可以解决物体碰撞时抖动问题
    {
        float h = Input.GetAxisRaw("Horizontal"); 
        
        //监控,可以获取玩家输入的左右方向键的值
        //按下a或者←时候就是坐标轴中的负方向,可以是为-1;
        transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World);
        //                              向右为主方向  h为判断左右           每秒的时间             在地图世界的框架里
        if (h < 0)
        {
            sr.sprite = tankSprite[3];//当向左,小于了0,那就把图片sprite换成Sprite[]数组里面存下来的第三个数组
        }
        else if (h > 0)
        {
            sr.sprite = tankSprite[1];//向右,大于零,用数组中1的位置

        }

        float v = Input.GetAxisRaw("Vertical");//用来监听用户的垂直方向的键
        transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime, Space.World);
        if (v < 0)
        {
            sr.sprite = tankSprite[2];
        }
        else if (v > 0)
        {
            sr.sprite = tankSprite[0];
        }
    }
    // Update is called once per frame
    void Update()
    {
  
    }
}

``