Unity零基础到入门 ☀️| Time(时间)和Input键盘及鼠标输入方法
【摘要】 Time(时间)首先介绍两个概念:现实时间和游戏时间大多数Time类都是依赖于游戏时间的。现实时间也就是不依赖于程序内部,就算程序暂停也会继续计算的真实时间,而游戏时间是基于程序内部的,可以自行调整。我们这里用的都是游戏时间下面来用代码示例学一下 Time 类的使用public class ReadTimeAndMathf : MonoBehaviour{ //时间缩放 publ...
Time(时间)
首先介绍两个概念:现实时间和游戏时间
大多数Time类都是依赖于游戏时间的。
现实时间也就是不依赖于程序内部,就算程序暂停也会继续计算的真实时间,而游戏时间是基于程序内部的,可以自行调整。
我们这里用的都是游戏时间
下面来用代码示例学一下 Time 类的使用
public class ReadTimeAndMathf : MonoBehaviour
{
//时间缩放
public float timeScale = 1f;
public float moveSpeed = 2;
private void FixedUpdate()
{
Debug.Log(Time.fixedDeltaTime);
transform.position += Vector3.forward * Time.fixedDeltaTime * moveSpeed;
}
void Update()
{
// Debug.Log(Time.time);//游戏过来多长时间
Debug.Log(Time.deltaTime);//每帧的时间间隔
//调整时间缩放
Time.timeScale = timeScale;
// transform.position += Vector3.forward * Time.deltaTime * moveSpeed;
// transform.position = Vector3.Lerp(transform.position,Vector3.forward * 5 ,Time.deltaTime * moveSpeed);
}
}
在游戏中我们经常要用到按某个键来执行某件事,就比如按A键开炮,空格键跳跃等等。下面就来简单介绍一下怎样使用 键盘输入方法
public class SimplePlayerMove : MonoBehaviour
{
[Header("炮弹")]
public GameObject bullet;
public float moveSpeed = 3f;
public float turnSpeed = 3f;
private float hor, ver;
void OldUpdate(){
bool downA = Input.GetKeyDown(KeyCode.A);
if (Input.GetKeyDown(KeyCode.A))
{
Debug.Log("按下了A键");
}
if (Input.GetKeyUp(KeyCode.A))
{
Debug.Log("松开了A键");
}
if (Input.GetKey(KeyCode.Space))
{
Debug.Log("按住了空格键");
}
if(Input.GetKey(KeyCode.W))//前进
{
transform.position +=transform.forward * Time.deltaTime * moveSpeed;
}
if(Input.GetKey(KeyCode.S))//后退
{
transform.position -=transform.forward * Time.deltaTime * moveSpeed;
}
if (Input.GetKey(KeyCode.A))//左转
{
transform.eulerAngles -= Vector3.up * turnSpeed;
}
if (Input.GetKey(KeyCode.D))//右转
{
transform.eulerAngles += Vector3.up * turnSpeed;
}
}
----
void Update()
{
hor = Input.GetAxis("Horizontal");
ver = Input.GetAxis("Vertical");
//transform.position += new Vector3(hor, 0, ver) *Time.deltaTime * moveSpeed;
//前后移动
transform.position += ver * transform.forward * Time.deltaTime * moveSpeed;
//左右转身
transform.eulerAngles += hor * Vector3.up * turnSpeed;
}
}
说完了键盘输入,自然还有鼠标输入啦,那下面就来介绍一下 鼠标输入方法
void KeyUpdate()
{
if (Input.GetMouseButtonDown(0))
{
Debug.Log("按下了鼠标左键");
}
if (Input.GetMouseButtonUp(0))
{
Debug.Log("松开了鼠标左键");
}
if (Input.GetMouseButton(0))
{
Debug.Log("按住了鼠标左键");
}
}
---
void Update()
{
float hor = Input.GetAxis("Horizontal");
//Debug。Log( if (Input.GetButtonDown("Fire"));
{
Debug.Log("按住了开火键");
// GameObject crtPlayer = Instantiate(playerPrefab);
GameObject crtPlayer = Instantiate(playerPrefab, Vector3.forward, Quaternion.identity);
})
if (Input.GetButtonDown("Fire"))
{
Debug.Log("按住了开火键");
// GameObject crtPlayer = Instantiate(playerPrefab);
GameObject crtPlayer = Instantiate(playerPrefab, Vector3.forward, Quaternion.identity);
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)