凉鞋的 Unity 笔记 201. 第三轮循环:引入变量

201. 第三轮循环:引入变量

在这一篇,我们进行第三轮 编辑-测试 循环。

在之前我们编写了 输出 Hello Unity 的脚本,如下:

csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FirstGameObject : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        print("Hello Unity"); // +
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

如果我们要输出 10 次 Hello Unity 该怎么办呢?

答案很简单,就是复制十行 print("Hello Unity"),代码如下:

csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FirstGameObject : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        print("Hello Unity"); 
        print("Hello Unity"); 
        print("Hello Unity"); 
        print("Hello Unity"); 
        print("Hello Unity"); 
        print("Hello Unity"); 
        print("Hello Unity"); 
        print("Hello Unity"); 
        print("Hello Unity"); 
        print("Hello Unity"); 
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

这样当我们运行场景后,结果如下:

总共输出了十次 Hello Unity。

此时我突然想要把输出十次 Hello Unity 改成输出十次 Hello C#。

那么最简单的方式,就是直接修改代码,如下:

csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FirstGameObject : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        print("Hello C#"); 
        print("Hello C#"); 
        print("Hello C#"); 
        print("Hello C#"); 
        print("Hello C#"); 
        print("Hello C#"); 
        print("Hello C#"); 
        print("Hello C#"); 
        print("Hello C#"); 
        print("Hello C#"); 
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

运行之后,结果如下:

但是这样太不优雅了,我们需要复制粘贴十次,如果我们有 100 个甚至 1000 个 Hello Unity,那么我们可能需要复制粘贴很多次,或者使用代码编辑器所提供的查找/替换功能完成。

比较优雅的方式就是引入一个变量,代码如下所示:

csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FirstGameObject : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        var textToPrint = "Hello C#";
        
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint);
        
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint); 
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

这样当我们想要输出十次 Hello World 那么我们只需要修改变量的值即可,如下所示:

csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FirstGameObject : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        var textToPrint = "Hello World";
        
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint);
        
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint); 
        print(textToPrint); 
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

这样非常优雅。

我们在代码中新引入的 textToPrint 叫做变量。

变量可以存储一个值,然后再接下来可以通过这个变量来代替具体的值。

比如 textToPrint 是 "Hello World",那么接下来的每一句 print(textToPrint) 其实都是 print("Hello World")。

变量给编程带来了巨大的便利。

当然,变量是每一个程序语言都有的,而每一个游戏引擎不管是提供专业脚本支持还是可视化脚本支持都会提供变量的使用,所以变量也是通识部分的内容,再接下来的篇幅里,笔者会好好介绍变量,以及 C# 中的变量使用。

这一篇内容就这些,我们下一篇再见,拜拜。

知识地图

转载请注明 凉鞋的笔记

相关推荐
自小吃多8 小时前
本地部署大模型避坑实录|Ollama+AnythingLLM 一直加载、CPU 爆满、GPU 闲置问题完整解决
笔记
我命由我123459 小时前
Windows 操作系统 - Windows 查看架构类型
运维·windows·笔记·学习·系统架构·运维开发·系统
金蕊泛流霞9 小时前
dify安装教程
笔记
IOT.FIVE.NO.111 小时前
Codex Skill 内部结构解析:从 SKILL.md 到 scripts、references、assets
前端·javascript·人工智能·笔记·html
AI精钢12 小时前
把 Markdown 笔记变成可问答的知识图谱:本地 Graph RAG 工具 Kwipu 实测
人工智能·笔记·python·aigc·知识图谱
kobesdu12 小时前
【ROS2实战笔记-15】ros2bag 的深度应用:从数据回放到系统级离线分析
人工智能·笔记·移动机器人·ros2
天人合一peng12 小时前
Hololens2 发布debug调试安装至hololens2
unity·xr
晓梦林12 小时前
Loooower靶场学习笔记
笔记·学习·安全·web安全
我命由我1234512 小时前
前端开发概念 - 无障碍树
javascript·css·笔记·学习·html·html5·js
Yuk丶13 小时前
UE4 与 UE5:技术差异深度解析
c++·ue5·游戏引擎·ue4·游戏程序·虚幻