unity学习笔记三 物体的移动

这篇博客是关于Unity中物体移动的笔记,详细解释了如何通过代码实现物体以秒为单位的移动,以及使用Input类进行键盘控制物体移动的方法,包括GetKey, GetKeyDown和GetKeyUp的用法。" 114489293,10536635,使用HTML5 Canvas实现擦除动画效果,"['前端开发', 'HTML5', 'canvas', '动画', '图形绘制']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习视频是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。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值