以 Unity 脚本为例解析 C# 的类

一开始学习 unity 的时候,我们可能对 C# 还不是很了解,不太清楚它的一些深层次的概念。不过没关系,我们可以在学习的过程中逐步了解。

代码来源:

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

public class PlayerController : MonoBehaviour
{
    private CharacterController player;
    // Start is called before the first frame update
    void Start()
    {
        player = GetComponent<CharacterController>();
    }

    // Update is called once per frame
    void Update()
    {
        // 水平轴
        float horizontal = Input.GetAxis("Horizontal");
        // 垂直轴
        float vertical = Input.GetAxis("Vertical");
        // 创建成一个方向向量
        Vector3 dir = new Vector3(horizontal, 0, vertical);
        Debug.DrawRay(transform.position, dir, Color.red);
    }
}

Unity 中的脚本是什么

Unity 中的脚本不是独立存在的,它其实是整个项目中的一些“插件”,依附于 Unity 的核心而存在。

Unity 已经替我们引用了 UnityEngine.dll 库文件,帮我们把自己写的代码和游戏中的其他对象关联起来。

using

using 是使用命名空间。命名空间就相当于类、变量的“姓”,它是名字的一部分,在语义上表示它属于谁,但并没有实质性的功能。

public class PlayerController : MonoBehaviour

它是一个类的定义,类似于 C++。

这个类的名字是 PlayerController,继承自 MonoBehavior 类。

这个类的继承方法是 public, 也就是说它会保留父类属性和方法的可访问性。

private CharacterController player;

这里声明一个 CharacterController 类的对象,名字是 player。

private 表示这是 PlayerController 类的一个私有属性。

player = GetComponent<CharacterController>();

这个代码的完整含义其实是 this.gameObject.GetComponent<CharacterController>();

GetComponent 是 MonoBehavior 类的一个方法,因此我们在这里可以直接使用它。而这个方法实际上指向的是 this.gameObject(也就是这个类挂载到的游戏对象)拥有的 GetComponent 方法。

<CharacterController> 则是给这个泛型方法输入一个类型,让他去找这个类型的对象。

评论

  1. syn
    已编辑
    3 月前
    2025-5-13 20:36:56

    *此评论已经过编辑*

    • syn
      syn
      3 月前
      2025-5-13 20:39:11

      reply test

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇