平面角色移动
我太难了
pubilc是创建在可视窗口的一种变量什么的
public float moveSpeed = 3;//定义移动速度
public Sprite[] tsnkSprite;//定义一个数组,他会直接显示在组建上,将需要的图片拖进数组,以完成使用
在unity就可以直接修改
transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World);//基本的移动
动动Vector3.方向right左右,up上下,乘h
基础移动代码片
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour
{
void Start() {}
public float moveSpeed = 3;//定义移动速度
void Update()
{
float h = Input.GetAxisRaw("Horizontal");//横轴,设置一个h的变量将横轴赋值给他,向左h=-1,向右h=1
transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World);//基本的移动
float v = Input.GetAxisRaw("Vertical");
transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime, Space.World);//竖轴,设置一个h的变量将横轴赋值给他,向v=-1,向v=1
}
}
进阶改变图片代码片
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour
{
public float moveSpeed = 3;//定义移动速度
private SpriteRenderer sr;//获取图片的组建并命名为sr
public Sprite[] tsnkSprite;//定义一个数组,他会直接显示在组建上,将需要的图片拖进数组,以完成使用
// Start is called before the first frame update
private void Awake()
{
sr = GetComponent<SpriteRenderer>();//获取组建
}//awake函数,一般赋值都要放在这里
void Start()
{
}
// Update is called once per frame
void Update()
{
float h = Input.GetAxisRaw("Horizontal");//横轴,设置一个h的变量将横轴赋值给他,向左h=-1,向右h=1
transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World);//基本的移动
//public float moveSpeed = 3;最开始第一行定义的移动速度
-------------------------------------------图片代码
if (h<0)
{
sr.sprite = tsnkSprite[3];
}
else if (h > 0)
{
sr.sprite = tsnkSprite[2];
}//通过h的判断切换图片
}
------------------------------------------图片代码
float v = Input.GetAxisRaw("Vertical");
transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime, Space.World);//竖轴,设置一个h的变量将横轴赋值给他,向v=-1,向v=1
if (v < 0)
{
sr.sprite = tsnkSprite[1];
}
else if (v > 0)
{
sr.sprite = tsnkSprite[0];
}//通过h的判断切换图片
}
}
添加了图片的代码片