零基础游戏开发笔记11——Unity脚本介绍、脚本初始阶段

article/2025/10/5 4:35:19

1.语法结构:

 2.编译过程:

CLS->Mono RunTime->机器码

3.关于修改和创建脚本:

创建脚本:

一般我们会在项目中添加scripts文件夹,并在此文件夹中编写脚本,当然这些脚本可以根据个人喜好分配到不同类的子文件夹中。

需要注意的是:我们每次创建脚本文件时,系统会自动生成一个C#脚本,如下:

如果脚本生成了一定要查看,类名和文件名是否相同。这个很重要!!!

 4.开发工具:

MonoDevelop:

 5.脚本的生命周期

在学习之前,我们先要搞明白一些,脚本的基础知识。

首先我们先学习一下什么是特性。如下:

public class LiseCycle : MonoBehaviour
{[SerializeField]//序列化字段,用于在编辑器中显示私有变量private int a;[HideInInspector]//用于隐藏字段public int b;[Range(0,100)]//用于限定数值范围public int c;
}

这些中括号中的字段就是不同的特性。

而且我们会发现,在unity脚本中,我们一般不会去写属性和构造方法。因为属性不会调用,构造方法可能出错。

    //另外当我们学习玩C#后,我们会发现有一点特别不适应就是在写脚本的时候不能写属性//public int A//{//    get { return this.a; }//    set { this.a = value; }//}//public LifeCycle()//{//    b = (int)Time.time;//}

至于为什么,简单来说就是不能在子线程中调用主线程事件,现在不明白也不碍事,后面我们会说。

6.初始阶段

 Awake在创建游戏对象时立即执行,早于start。Start在创建游戏对象时,启动脚本,后才会执行。这里我们需要注意的是就算我们在Unity中禁用了脚本,只要物品挂在了脚本,都会运行Awake

所以,以后我们如果想要初始化一些对象的参量,可以写在awake和start中,两者区别不大,主要是顺序不同,Awake永远快于Start执行。

代码实例:

    private void Awake(){Debug.Log("初始方法:" + Time.time + ",对象:" + this.name);if (false){this.enabled = false;}}private void OnEnable(){Debug.Log("对象:" + this.name+",调用了脚本!");}private void Start(){Debug.Log("开始方法:" + Time.time + ",对象:" + this.name);}

其中this.enabled是用于满足某些条件下,是否执行当前对象的脚本。


http://chatgpt.dhexx.cn/article/ZddeWCLM.shtml

相关文章

NS版暗黑破坏神3金手指开发教程(4)

上一节,我们讲了基于公式明文的金手指制作方法,这一节,我们将进阶到更高级的基于程序修改的金手指制作方法,从现在开始,对读者的技术水平有了一个更高的要求,读者最好有汇编和C/C高级语言的一些基础&#x…

NS版暗黑破坏神3金手指开发教程(17)

终于到最后一节了,在这一节中我们将讲解如何利用hack制作出丰富多彩的世界,开个玩笑,其实是因为由于暗黑三的AMIIBO功能很有意思,不但可以用普通手办在城外召唤出一组精英怪,而且在城内用专用哥布林手办还能开启宝藏秘…

NS版暗黑破坏神3金手指开发教程(5)

上一节,我们学会了通过修改程序指令的方式制作金手指,这一节,将引出真正的高手级金手指开发方法 除了必掉太古这个极其护肝和有用的金手指外,我们能想到的另一个金手指就是人物背包里的素材,包括金钱,宝石…

暗黑破坏神2 符文自动合成--按键精灵源码

最近玩了一个暗黑破坏神mod服 发现2个符文可以合成一个大号符文.不过手动合成实在太费劲了.于是乎我就写了一个自动合成的脚本. 需要用到图灵插件,不知道的自己百度一下. 还是挺有意思的这类脚本.还需要有一个自己的算法. 源码如下. Function 移动鼠标点左键(x1, y1)MoveT…

Unity脚本(二)

视频教程:https://www.bilibili.com/video/BV12s411g7gU?p122 目录 Transform GameObject Object GetComponentInParent LookAt GetSiblingIndex、SetSiblingIndex Instantiate Transform 对象的位置、旋转和缩放 场景中的每个对象都有一个Transform&…

Unity 剧情类游戏基础脚本

本文主要用于给新人提供实现剧情类游戏的基本思路。 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; 然后是一个很重要的 [System.Serializable] 它的作用是使得在检查器窗口来看到我i们自己创建的类从而实现在检…

Unity脚本(三)

视频教程:https://www.bilibili.com/video/BV12s411g7gU?p128 目录 Time Prefab Animation Time Time.time:自应用程序启动以来,每帧的开始时间(只读) Time.deltaTime:每帧间隔,或说完…

NS版暗黑破坏神3金手指开发教程(1)

最近重温了NS版的暗黑三,因为空闲时间实在有限,面对这样一款刷刷刷的经典作品,为了护肝以及更爽快的游玩,同时为了弥补自己丢失已久的汇编技能,加上NS版暗黑三最初版本里有带完整调试信息的elf文件,于是有了…

NS版暗黑破坏神3金手指开发教程(3)

上一节,我们初步介绍了修改人物力量的方法,也大致说了一下hexworkshop和IDA的简单操作,这一节,我们将进阶到复杂度高一些的人物全属性修改,搜索方法基本跟上一节的力量公式一样,需要一定的耐心和细心&#…

Unity入门3——脚本基础

一、生命周期函数 ​ 所有继承 MonoBehavior 的脚本,最终都会挂载到 GameObject 游戏对象上 ​ 生命周期函数就是该脚本对象依附的 GameObject 对象从出生到消亡整个生命周期中 ​ 会通过反射自动调用的一些特殊函数 ​ Unity 帮助我们记录了一个 GameObject 对象依…

4.实现csdn暗黑模式-油猴脚本实战1

4.实现csdn暗黑模式-油猴脚本实战1 Start 前面的文章,对油猴脚本做了基础的介绍。今天来我们来实战一下,编写一个有实际作用的油猴脚本。 如果我希望我的csdn是暗黑模式,怎么办? 看我表演? 注意!本文仅用…

6. unity之脚本

1. 说明 当整个游戏运行起来之后,我们无法再借助鼠标来控制物体,此时可以使用脚本来更改物体的各种姿态,驱动游戏的整体运动逻辑。 2. 脚本添加 首先在Assets目录中,新创建一个Scripts文件夹,在该文件内右键鼠标选择创建脚本选项,即可创建一个脚本文件,可命名为Sampl…

Unity入门03——Unity脚本

1.脚本基本规则 1.设置编程用工具 2.基本规则 1.创建规则 不在VS中创建脚本了可以放在Assets文件夹下的任何位置(建议同一文件夹管理)类名和文件名必须一致,不然不能挂载(因为反射机制创建对象,会通过文件名去找Type)建议不要使用中文名命名没有特殊…

你可能还不知道的暗黑3常用小技巧

以下是上次活动热心坛友发来的游戏小技巧,经过我的搜集和加入一些自己和朋友们分享的经验整合编辑而成。再次感谢大家的热心参与。都非常实用哟!!! 操作篇 1,如果你不希望朋友进入你的游戏时,按ESC&#xf…

jq linux获取数组长度,数组长度用size还是length

数组长度用length属性。length是js的原生方法,可获取元素的个数和对象的长度;而size()函数是jQuery方法,只能作用于对象上,用于返回当前jQuery对象封装的元素个数。获取一个数组的长度或者参数的长度,只能用lenth。 本…

delphi 获取数组长度_数组的介绍及使用

JavaScript 中的数组常用于在单个变量中存储多个值。数组就是一组数据的集合,在内存中表现为一段连续的内存地址(保存在堆内存)。创建数组的目的就是为了保存更多的数据。 数组概念和语法 概念:数组是一个特殊变量,一次可以容纳多个值。 特点…

js 填充数组长度

js 填充的方法有以下三种 const array new Array(100).fill()Array.from(new Array(100).keys())let arr Array.from({length:100}, (_v,k) > k);如果下面有这么一个场景,你在接口中获取了一个数组对象,如下: [{id:1},{id:2},{id:3},{…

c语言中文网 数组的长度,数组的长度如何获取?

获取数组长度的方法: 1、在java与JavaScript中可以使用“数组名.length”方法获取数组长度 javaScriptvar arrnew Array(); arr[0] "a"; arr[1] "b"; var lenarr.length; java 2、c语言中可以使用关键字 sizeof获取数组长度 用 sizeof 可以获…

c语言 json数组长度,js 获取json数组里面数组的长度

作为一个前端页面开发者第一次处理json数据,遇到了‘js 获取json数组里面数组的长度’?竟然不知道 json没有.length属性(真是要嘲讽下自己),少壮不努力老大徒伤悲啊!以前都是去寻求男朋友帮助,但是最近尝试自己去解决遇到的问题。 我遇到的问题是这样的:***.jsp结尾的页面…

vue 获取数组长度_Vue数据响应式

响应式是一种设计模式。 页面响应式布局就是根据页面缩放大小调整布局,数据响应式就是代码根据数据变化作出反应。 深入响应式原理 — Vue.js​cn.vuejs.org 简单来说,当我们把一个 JavaScript 对象传入 Vue 实例作为data选项时,Vue将遍历此对象所有的 property,使用Object…