Unity零基础到入门 ☀️| Time(时间)和Input键盘及鼠标输入方法

举报
呆呆敲代码的小Y 发表于 2021/08/31 20:39:32 2021/08/31
【摘要】 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);
    }
}

Input键盘输入方法

在游戏中我们经常要用到按某个键来执行某件事,就比如按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;
  }
}

Input鼠标输入方法

说完了键盘输入,自然还有鼠标输入啦,那下面就来介绍一下 鼠标输入方法

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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。