Unity3D制作一个会移动的方块(还不会移动照相机)

这篇具有很好参考价值的文章主要介绍了Unity3D制作一个会移动的方块(还不会移动照相机)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学习Unity3D这么久了,如果你还不会制作一个按下WASD就可以移动的方块的话,那么你的学习将没有一点成就感,我学习的时候,我决定先学习移动,这样我就会对Unity更加感兴趣,学习起来的动力会更为充足

先创建一个项目,名为move,如果你手头有一个随便乱用的项目,也可以。

准备阶段

先在场景中放置一个方块,作为要移动的方块,将摄像机的位置也放在如图的位置(也可以不修改摄像机的位置)

unity方块移动,游戏编程(UE,Unity),unity,游戏引擎

接下来在Assets文件夹中创建一个C#代码文件,名为“move.cs”

unity方块移动,游戏编程(UE,Unity),unity,游戏引擎

双击打开move.cs

添加以下代码

public float moveSpeed = 10f;
public float turnSpeed = 100f;

以上代码我们创建了一个共有浮点型变量,名为“moveSpeed”用来存放移动时要移动多少的量,还有一个共有浮点型变量,名为“turnSpeed”用来存放旋转时要旋转多少的量。

注:f是一个Unity规定要加的字符,如果是整数可以不加(int),其他必须要加,因为我们这里用的是float定义的,所以要加

float、double要加

int、long long不用加

比如

//以下是不用加  f  的
public int moveSpeed = 10;
public int turnSpeed = 100;

public long long moveSpeed = 10;
public long long turnSpeed = 100;


//以下是要加  f  的

public float moveSpeed = 10f;
public float moveSpeed = 100f;

public double moveSpeed = 10f;
public double moveSpeed = 100f;

其实f在Unity里面翻译过来就是N(牛)的意思

N:一个物理量


就是力的大小的单位,全称 牛顿 。 为了纪念注明的物理学家牛顿,用他的名字作为力的单位。 比如你托住两个鸡蛋,用的力大约为1牛。 一个1千克(两斤)的物体,地球对它的吸引力大约为10牛。

接下来在添加一些键盘监听来完善键盘按键的操作

if (Input.GetKey(KeyCode.UpArrow))
{
    transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.DownArrow))
{
    transform.Translate(-Vector3.forward * moveSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
    transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.RightArrow))
{
    transform.Rotate(Vector3.up, turnSpeed * Time.deltaTime);
}

这里我们用了Input.GetKey(KeyCode.要监听的键盘按键),此函数会返回一个布尔值,如何键盘按下,就为真(true),否则释放就会返回假(false)

transform.Translate()这是一个移动函数

transform.Rotate()这是一个旋转函数

注:Vector3.forward * moveSpeed * Time.deltaTimeVector3.up, turnSpeed * Time.deltaTime这些都是用来优化的代码,因为显卡在画画的时候,每一帧不一定都会按时画完,如何没有按时画完,那么移动的实体就会出现闪现的动作,移动不是很丝滑。

好了我们看一下整体代码

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

public class debug : MonoBehaviour
{
    public float moveSpeed = 10f;
    public float turnSpeed = 100f;
    void Update()
    {
        if (Input.GetKey(KeyCode.UpArrow))
        {
            transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            transform.Translate(-Vector3.forward * moveSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.Rotate(Vector3.up, turnSpeed * Time.deltaTime);
        }
    }
}

由于我们的按键是要一直监听的,所以要放在Update函数里面,这样就会在程序绘画每一帧的时候调用,这要就可以做到一直调用

好了,把代码保存一下,然后将其拖到Cube上面,与模型进行绑定,这样此代码才会运行

unity方块移动,游戏编程(UE,Unity),unity,游戏引擎

 此时你再点击运行,然后按下↑↓←→键,你会发现,方块会移动和旋转了!

如何此文章里面有一些不对的地方,请各位大佬指教,谢谢!!!文章来源地址https://www.toymoban.com/news/detail-631431.html

到了这里,关于Unity3D制作一个会移动的方块(还不会移动照相机)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity3D制作天空盒

    1、下载并导入hdr高动态范围图像资源到Project视图中,然后将图片的“Texture Shape”修改为“Cube”。  3、将步骤1的图片拖入“Cubemap(HDR)”的框内。  4、最后将制作好的材质,直接拖入Scene窗口中。           

    2024年02月15日
    浏览(61)
  • Unity3D 控制物体移动且自动旋转

    直接上代码(改脚本挂载到游戏物体上) 第三人称摄像机移动

    2024年02月15日
    浏览(83)
  • Unity3D方向键控制人物移动的代码

    也可以换成 Translate 函数默认模式是 Space.Self ,此时移动方向需要为人物坐标系下的人物前进方向 Vector3(0, 0, 1) ;如果模式指定为 Space.World ,移动方向应该为世界坐标系下的人物前进方向 transform.forward , transform.forward 在人物转向过程中会改变。如果不注意这个问题,人物转

    2024年02月11日
    浏览(63)
  • Unity3D粒子系统之制作火焰特效

    本文将会介绍如何使用Unity内的粒子系统制作烟雾效果。 如果想了解Unity粒子系统中的基础属性,可以看这篇博客:Unity3D粒子系统之基础属性介绍 先上预览图吧 用自己熟悉的绘画工具画一张类似这样的图片(相似即可,白灰色部分边缘不规则),注意一定要黑底。 将画好的

    2024年02月02日
    浏览(47)
  • Unity3D粒子系统之制作烟雾特效

    本文将会介绍如何使用Unity内的粒子系统制作烟雾效果。 如果想了解Unity粒子系统中的基础属性,可以看这篇博客:Unity3D 粒子系统之基础属性介绍 先附上预览图: 材质贴图 首先我们需要一张烟雾材质用的材质贴图,我是自己画的,可以参考下图自己画一张或者去网上找素材

    2024年02月02日
    浏览(55)
  • 使用Unity3D制作2D游戏的重点做法

    官网上有提供一个 2D游戏的教学范例 ,这个游戏只不过把镜头摆放在横向位置跟随角色移动,游戏内物件运动时固定一个轴不动,使他像横轴式的2D游戏来玩,本质上其实还是个3D游戏,所以如果没有3D建模的话不就没办法做2D游戏了?其实这些并没有定论,就看制作者如何运

    2024年02月11日
    浏览(66)
  • [unity3d][通过代码]让模型移动,动态改变模型位置,点对点移动

    阅读时长 : 10分钟 阅读难度 : 初级 阅读收获 : 可以在unity自由的完成点对点的移动过程 例子地址 : https://gitee.com/asiworld/unity3d-basic-function-code 直接修改 gameobject 的 position 内容,当然物体实际存在的有localposition和worldposition,具体要使用哪个要看需求是怎么样的 在hierarchy视图中创

    2023年04月24日
    浏览(58)
  • unity3d 制作开门动画以及收集钥匙实现开门

    首先展示效果: unity3d 制作开门动画以及收集钥匙实现开门 第一步,我们在Hirarchy面板上新建三个cube,再按照一定的比例调整,制作完成一个门框,然后制作一个空物体并命名为Doorframe,将三个cube合并成门框一个整体:  然后再创建一个cube调整大小,在将合适的门移动至门框

    2023年04月13日
    浏览(55)
  • Unity3D项目之游戏场景小地图制作

    创建一个场景资源,可在asset store资源商店下载,选择心仪场景。 链接:https://assetstore.unity.com/?locale=zh-CN 添加一个对象GameObject,命名为player,子物体包括:主摄像机,角色,后面步骤会添加一个plane。 添加一个地图摄像机,命名为MapCamera。修改属性projection为OrthoGraphic;Size为

    2024年02月11日
    浏览(80)
  • Unity3D制作注册登录界面,并实现场景跳转

    效果预览图片: 效果预览视频: 一、新建项目工程 1、打开Unity3D,新建一个项目,将其命名为“Login”。我这里用的版本是Unity2018.4.2f1,不同版本制作过程中的界面可能稍有不同,但是不影响具体功能的实现。 2、可以将样例场景SampleScene重命名为Login,最好做到见名知意。

    2024年02月03日
    浏览(82)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包