Unity Input类测试

Unity 学习笔记汇总
官方API使用文档

1. 预制物体与克隆函数

1.1. 前台

  1. Cube拉到Assets里变成预制物体,然后再从Assets里拉到场景里
    在这里插入图片描述
  2. 点击添加到场景里的预制体,然后添加Rigidbody
    在这里插入图片描述
  3. 新建一个空游戏物体,将脚本挂到上面,并把脚本里的go变量与Cube进行绑定。
    在这里插入图片描述

1.2. 代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class clone : MonoBehaviour
{
    public GameObject go;
    // Start is called before the first frame update
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetKeyUp(KeyCode.Space))
        {
            GameObject.Instantiate(go, gameObject.transform.position, gameObject.transform.rotation);
        }
    }
}

1.3. 结果

场景运行时方块会掉落,然后按空格键会新生成一个方块并掉落。

2. Input类按键

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class input : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetKey(KeyCode.A))
        {
            Debug.Log("一直按着A键");
        }

        if (Input.GetKeyDown(KeyCode.A))
        {
            Debug.Log("按下A键");
        }

        if (Input.GetKeyUp(KeyCode.A))
        {
            Debug.Log("A键抬起");
        }

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Application.Quit(); //打包后才会生效
            Debug.Log("按下Esc键");
        }

        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log("按下空格键");
        }

        if (Input.GetButtonDown("Jump"))
        {
            Debug.Log("按下虚拟空格键");
        }

        if (Input.GetMouseButton(0))
        {
            Debug.Log("按下鼠标左键");
        }

        if (Input.GetMouseButton(1))
        {
            Debug.Log("按下鼠标右键");
        }

        if (Input.GetMouseButton(2))
        {
            Debug.Log("按下鼠标中键");
        }

        if (Input.GetButtonDown("Fire1"))
        {
            Debug.Log("按下虚拟鼠标左键");
        }

        if (Input.GetButtonDown("Fire2"))
        {
            Debug.Log("按下虚拟鼠标右键");
        }

        if (Input.GetButtonDown("Fire3"))
        {
            Debug.Log("按下虚拟鼠标中键");
        }

        if(Input.anyKey)
        {
            Debug.Log("某个键被按下");
        }

        if (Input.anyKeyDown)
        {
            Debug.Log("某个键被按下去");
        }
    }
}

3. Input类屏幕点与三维坐标点转换

3.1. 前台

Main CameraProjection设为Othergraphic
在这里插入图片描述

3.2. 代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class point : MonoBehaviour
{
    GameObject player;
    // Start is called before the first frame update
    void Start()
    {
        player = GameObject.Find("Merchant_female@basice");
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 mouseP = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        player.transform.position = new Vector3(mouseP.x, mouseP.y, player.transform.position.z);

        Debug.Log("" + Input.mousePosition + mouseP + player.transform.position);
        //X:屏幕左下角为0,0,0
        //屏幕右上角为当前屏幕分辨率的最大值
    }
}

3.3. 结果

会看到人物的位置随着鼠标指针位置的变化而变化

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读