【游戏引擎】Unity脚本基础 开启游戏开发之旅

请添加图片描述
在这里插入图片描述持续更新。。。。。。。。。。。。。。。

【游戏引擎】Unity脚本基础

  • Unity脚本基础
    • C#语言简介
      • C#基础
    • Unity脚本基础
      • 创建和附加脚本
      • MonoBehaviour生命周期
        • 生命周期方法
      • 示例脚本
    • Unity特有的API
      • 常用Unity API
    • 实践示例:制作一个简单的移动脚本
      • 步骤1:创建脚本
      • 步骤2:编写移动逻辑
      • 步骤3:附加脚本到对象
      • 步骤4:测试脚本
    • 结论

Unity脚本基础

Unity是一款流行的游戏开发引擎,它支持使用C#语言来编写脚本,从而赋予游戏对象(GameObject)各种行为和功能。如果你是一名初学者,想要开始学习Unity脚本编程,那么这篇博客将为你提供一个基础的入门指南。

C#语言简介

C#是一种面向对象的编程语言,它简洁、类型安全,并且功能强大。Unity使用C#作为其主要的脚本语言,因此,了解C#的基础知识对于Unity脚本编写至关重要。

C#基础

  • 变量:用于存储数据值。
  • 控制流:包括条件语句(如if-else)和循环(如for、while)。
  • 函数:用于封装可重用的代码块。
  • 类和对象:定义数据结构和行为。
    在这里插入图片描述

Unity脚本基础

在Unity中,脚本是附加到GameObject上的C#类文件,它们可以包含用于控制游戏逻辑的函数和变量。

创建和附加脚本

  1. 在Unity编辑器中,右击Project视图中的任何位置,选择“Create” > “C# Script”。
  2. 命名你的脚本并确认创建。
  3. 将脚本拖拽到Hierarchy视图中的GameObject上,或者在Inspector视图中为GameObject添加组件时选择你的脚本。

MonoBehaviour生命周期

Unity中的脚本继承自MonoBehaviour类,这个类提供了多个生命周期方法,你可以在脚本中重写这些方法来执行特定的操作。

生命周期方法
  • Start():当GameObject第一次成为启用状态时调用。
  • Update():每一帧调用一次,是处理游戏逻辑的主要方法。
  • FixedUpdate():在固定的物理时间步长调用,用于物理计算。
  • LateUpdate():在当前帧结束时调用,用于处理需要在所有更新之后执行的逻辑。

示例脚本

using UnityEngine;public class MyFirstScript : MonoBehaviour
{void Start(){Debug.Log("游戏开始!");}void Update(){// 每帧执行的代码}
}

Unity特有的API

除了标准的C#语言特性,Unity还提供了大量的API,用于处理游戏开发中的特定任务。

常用Unity API

  • transform:访问和修改GameObject的Transform组件。
  • gameObject:访问GameObject实例。
  • Instantiate():实例化Prefab。
  • Destroy():销毁GameObject或Component。
  • Time.deltaTime:自上一帧以来的时间差。

实践示例:制作一个简单的移动脚本

让我们通过一个简单的示例来演示如何编写一个使物体在场景中移动的脚本。

步骤1:创建脚本

创建一个新的C#脚本,命名为MoveObject

步骤2:编写移动逻辑

在脚本中添加逻辑,使物体沿着特定方向移动。

using UnityEngine;public class MoveObject : MonoBehaviour
{public float speed = 5.0f;void Update(){float moveHorizontal = Input.GetAxis("Horizontal");Vector3 movement = new Vector3(moveHorizontal, 0.0f, 0.0f);transform.Translate(movement * speed * Time.deltaTime);}
}

步骤3:附加脚本到对象

MoveObject脚本附加到你想要移动的GameObject上。

步骤4:测试脚本

运行游戏并使用键盘上的左右箭头键来控制物体移动。

结论

Unity脚本是Unity游戏开发的核心。通过本篇博客,我们介绍了C#的基础知识,Unity脚本的创建和生命周期方法,以及一些Unity特有的API。通过实践示例,我们展示了如何编写一个简单的移动脚本。这只是一个开始,Unity脚本的世界非常广阔,随着你技能的提升,你可以创建更加复杂和有趣的游戏逻辑。不断实践,不断学习,你将能够在Unity的世界中创造无限可能。

在这里插入图片描述

内容地址 链接
总览【游戏引擎】Unity 介绍

=========================================================================
👊如果你对该系列文章有兴趣的话,欢迎持续关注博主动态,博主会持续输出优质内容👊

👊 博主很需要大家的支持,你的支持是我创作的不竭动力👊

👊 ~ 点赞收藏+关注 ~👊

在这里插入图片描述

版本记录:

  • 2024年5月21第一版

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/330919.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

水泥超低排平台哪家好?

随着环保政策的加强和绿色发展理念的深入人心,水泥行业的超低排放改造已成为行业发展的新趋势。选择一个合适的水泥超低排平台对于确保改造效果和实现企业的可持续发展至关重要。朗观视觉小编将从多个角度出发,为您提供一份综合评估与选择攻略&#xff0…

Flask-SQLAlchemy的使用【二】

目录 一.查询 1.1查询语句的格式 1.2查询过滤器 1.3查询执行器 1.4具体例子 1.4.1查询有多少个用户 1.4.2查询第一个用户 1.4.3查询id为4的用户 1.4.4查询id为4title为4的记录 1.4.5查询id为4或者title为4的记录 1.4.6查询id为[1,3,5,7,9]的记录 1.4.7查询所有记录&a…

无人机助力光伏项目测绘建模

随着全球对可再生能源需求的不断增长,光伏项目作为其中的重要一环,其建设规模和速度都在不断提高。在这一背景下,如何高效、准确地完成光伏项目的测绘与建模工作,成为了行业发展的重要课题。近年来,无人机技术的快速发…

汇聚荣科技有限公司优点有哪些?

在当今快速发展的科技时代,企业之间的竞争愈发激烈。作为一家专注于科技创新与研发的公司,汇聚荣科技有限公司凭借其卓越的技术实力和创新能力,在业界树立了良好的口碑。那么,汇聚荣科技有限公司究竟有哪些优点呢?接下来&#xf…

WPF中MVVM架构学习笔记

MVVM架构是一种基于数据驱动的软件开发架构,它将数据模型(Model)、视图(View)和视图模型(ViewModel)三者进行分离,使得开发者可以更加专注于各自领域的开发。其中,Model负…

Add object from object library 从对象库中添加内置器件

Add object from object library 从对象库中添加内置器件 正文正文 对于 Lumerical,有些时候我们在使用中,可能需要从 Object library 中添加器件,通常我们的做法是手动添加。如下图所示,我们添加一个 Directional Coupler 到我们的工程文件中: 但是这种操作方式不够智能…

封装了一个iOS中间放大的collectionView layout

效果图如下所示 原理:就是首先确定一个放大和缩小系数和原大小对应的基准位置,然后根据距离每个布局属性到视图中心的距离和基准点到中心的距离的差距/基准点到中心的距离, 计算出每个布局属性的缩放系数 下面是代码 // // LBHorizontalCe…

基于AT89C52单片机的智能窗帘系统

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/89276984?spm1001.2014.3001.5503 C 源码仿真图毕业设计实物制作步骤07 智能窗户控制系统学院(部): 专 业: 班 级&…

springboot vue 开源 会员收银系统 (4) 门店模块开发

前言 完整版演示 前面我们对会员系统 springboot vue 开源 会员收银系统 (3) 会员管理的开发 实现了简单的会员添加 下面我们将从会员模块进行延伸 门店模块的开发 首先我们先分析一下常见门店的管理模式 常见的管理形式为总公司 - 区域管理(若干个门店&#xff…

论文精读-SwinIR Image Restoration Using Swin Transformer

论文精读-SwinIR: Image Restoration Using Swin Transformer SwinIR:使用 Swin Transformer进行图像恢复 参数量:SR 11.8M、JPEG压缩伪影 11.5M、去噪 12.0M 优点:1、提出了新的网络结构。它采用分块设计。包括浅层特征提取:cnn提取&#…

【C++】C++11(一)

C11是一次里程碑式的更新,我们一起来看一看~ 目录 列表初始化:{ }初始化:std::initializer_list: 声明:auto:decltype: STL的一些变化: 列表初始化: { }初始化&#xf…

JavaSE——类和对象(二)~~封装

目录 一.封装 二.封装扩展之包 三.static成员 四. 代码块 五. 内部类(重要) 大家好呀,我是北纬,接着上节我们继续讲解Java中关于类和对象的相关知识,今天着重给大家介绍一下关于面向对象程序的特性之一——封装。…

最新php项目加密源码

压缩包里有多少个php就会被加密多少个PHP、php无需安装任何插件。源码全开源 如果上传的压缩包里有子文件夹(子文件夹里的php文件也会被加密),加密后的压缩包需要先修复一下,步骤:打开压缩包 》 工具 》 修复压缩文件…

STM32——IIC篇

技术笔记! 一、IIC总线协议介绍(掌握) 1.1 IIC总线结构图 1.2 IIC协议时序 1.3 硬件和软件IIC对比 二、AT24C02介绍(了解) 2.1 AT24C02通讯地址 三、AT24C02读写时序(掌握) 3.1 写时序 3.…

有趣的css - 移形换位加载动画

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是一个移形换位动态加载小动效,适用于 app 列表加载,页面加载或者图片懒加载等场景。 最新文章通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html…

Ubuntu22.04本地部署qwen模型、jupyterlab开发环境、LoRA微调全流程

前言 这段时间在自己的Win11系统上部署了chatGLM以及Qwen模型,进行对话、推理以及工具调用都没有问题,但是在尝试进行微调的时候发现好像并不能成功,因此花费了很大的力气,又分别在ubuntu桌面版、windows子系统WSL2 Ubuntu上部署…

数据可视化第9天(利用wordcloud和jieba分析蝙蝠侠评论的关键字)

数据可以在这里下载 https://github.com/harkbox/DataAnalyseStudy WordCloud wordcloud可以很方便的生成词云图,方便的提供可视化可以直接使用pip install wordcloud进行安装如果使用的是Anaconda,可以使用conda install进行安装 下面看一个简单的例子 txt &qu…

JVM学习-堆空间(三)

JVM在进行GC时,并非每次都对新生代、老年代、方法区(元空间)三个区域一起回收,大部分时间回收的都是新生代 针对Hotspot VM的实现,它里面的GC按照回收区域分两大类型:一种是部分收集(Partial GC),一种是整堆收集(Full …

amtlib.dll打不开怎么办?一键修复丢失amtlib.dll方法

电脑丢失amtlib.dll文件是什么情况?出现amtlib.dll打不开怎么办?这样的情况有什么解决方法呢?今天就和大家聊聊amtlib.dll文件同时教大家一键修复丢失amtlib.dll方法?一起来看看amtlib.dll文件丢失会有哪些方法修复? a…

Docker配置国内镜像源

添加Docker国内镜像源 在/etc/docker/daemon.json文件中添加以下内容: {"registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"] }重启docker s…