学习视频是b站上的来自程序员的暴击博主
文章目录
1、物体的移动
- 代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour
{
//定义变量
public Transform trans;
public float speed = 5f;
// Start is called before the first frame update
void Start()
{
trans = this.GetComponent<Transform>();
}
// Update is called once per frame
void Update()
{
// Translate方法表示平移
// 前面的参数是平移的距离,forward表示向前,speedspeed * Time.deltaTime表示每秒前进5米
//后面的参数表示以自身坐标轴为坐标系还是世界坐标轴
trans.Translate(Vector3.forward * speed * Time.deltaTime, Space.World);
}
}
- 放在Update()函数中的代码是以帧来执行的.如果我们需要物体的移动以秒来执行.我们需要将物体移动的值乘以Time.deltaTime。
2、键盘控制物体的移动
- 代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour
{
//定义变量
//public Transform trans;
public float speed = 5f;
// Start is called before the first frame update
void Start()
{
//trans = this.GetComponent<Transform>();
}
// Update is called once per frame
void Update()
{
//按下W键,向前移
if(Input.GetKey(KeyCode.W))
{
//unity中可以直接用内置transform,而不用再定义Transform类型的变量
transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World);
}
//按下S键,向后移
if (Input.GetKey(KeyCode.S))
{
transform.Translate(Vector3.back* speed * Time.deltaTime, Space.World);
}
//按下A键,向左移
if (Input.GetKey(KeyCode.A))
{
transform.Translate(Vector3.left * speed * Time.deltaTime, Space.World);
}
//按下D键,向右移
if (Input.GetKey(KeyCode.D))
{
transform.Translate(Vector3.right * speed * Time.deltaTime, Space.World);
}
}
}
- Input类:获取用户输入
(1) Input. GetKey();//当用户按下某个键返回True;
(2) Input. GetKeyDown() ;//当用户按下指定名称的按键时的那一帧返回true.
(3) GetKeyUp();//在用户释放给定名字的按键的那一帧返回 true。