Unity C#记录总结

目录

1.调用物体的组件的函数

2.成员的属性

3.调试

4.Console控制台

5.print

6.List:

7.单例模式

8.设计模式  

9.interface override virtual

10.事件函数的执行顺序

11.游戏物体的创建,属性和方法

12.Monobehavior


1.调用物体的组件的函数

other.GetComponent<PlayerScript1>().AddCoin();

物体.获取组件<类名>.().函数名();

2.成员的属性

public或者private,public的变量可以显示在面板上。

其中    public的变量添加[HideInInspector]前缀,就可以不显示在面板上;

           privated的变量添加[SerializeField]就可以显示在面板上,但是其属性不发生变化,其他脚本无法调用该变量。

[HideInInspector]
public int a;

[SerializeField]
private int b;

3.调试

通过Debug的静态方法,输出数值,提出警告或报错。

Debug.log("调试程序");

Debug.LogError("这里有一个报错");

Debug.LogWarning("这里有一个警告");

4.Console控制台

Console.Write("abc");
//写入字符串abc
Console.writeLine();
//同样写入字符串,自带换行
Console.Read();
//从键盘读取字符串
Console.ReadLine();
//从键盘读取字符串,换行结束
Console.ReadKey();
//读取用户的一次键盘输入,即一个字符
//ReadKey函数可用于暂停查看Console的内容

5.print

在类中使用print方法,该类需要继承MonoBehaviour。

而Debug.log()中log方法是static的,任意类可以直接访问。

6.List

        Add:向List中添加一个变量

        AddRange:向List中添加一组变量

7.单例模式

保证一个类只有一个对应的对象,并提供一个访问该对象的方法,这就是单例模式。

public class single
{
    //唯一的对象
    private static single instance=null;
    public static single Instance
    {
        get { 
            if(instance == null)
            {
                instance=new single();
            }
            return instance;
        }
    }
    public void run()
    {
        Debug.Log("运行");
    }
}

public class test : MonoBehaviour
{
    void Start()
    {
        single.Instance.run();
    }
}

8.设计模式  

        观察者模式

                通过接口interface实现

        工厂模式

                封装具体实例化的过程,只需调用实现的方法及接口。

9.interface override virtual

10.事件函数的执行顺序

  • 开始:

Awake:始终在任何 Start 函数之前并在实例化预制件之后调用此函数。(如果游戏对象在启动期间处于非活动状态,则在激活之后才会调用 Awake。)

Reset:调用 Reset 可以在脚本首次附加到对象时以及使用 Reset 命令时初始化脚本的属性。

OnEnable:(仅在对象处于激活状态时调用)在启用对象后立即调用此函数。在创建 MonoBehaviour 实例时(例如加载关卡或实例化具有脚本组件的游戏对象时)会执行此调用。

(ps:可用于物体的初始化,每次重新激活时数值回到最初值)

Start:仅当启用脚本实例后,才会在第一次帧更新之前调用 Start。

->变量赋值的顺序:直接赋值 检视面板 Awake OnEnable Start 外部赋值(外部赋值指通过其他脚本对变量值进行修改)

  • 更新:

Update:每帧调用一次 Update。这是用于帧更新的主要函数。

LateUpdate:每帧调用一次 LateUpdate__(在 Update__ 完成后)。LateUpdate 开始时,在 Update 中执行的所有计算便已完成。LateUpdate 的常见用途是跟随第三人称摄像机。如果在 Update 内让角色移动和转向,可以在 LateUpdate 中执行所有摄像机移动和旋转计算。这样可以确保角色在摄像机跟踪其位置之前已完全移动。

  • 退出:

OnDisable:行为被禁用或处于非活动状态时,调用此函数。

(ps:和OnEnable很像,可用于物体的回收,在每次失活时将物体的数据重置)

OnApplicationQuit:在退出应用程序之前在所有游戏对象上调用此函数。在编辑器中,用户停止播放模式时,调用函数。

  • 销毁:

OnDestroy:对象存在的最后一帧完成所有帧更新之后,调用此函数(可能应 Object.Destroy 要求或在场景关闭时销毁该对象)。

11.游戏物体的创建,属性和方法

创建游戏物体:三种方法 构造函数,预制体的实例化,API构造

GameObject GO =new GameObject("Name");//通过构造函数创建游戏物体
GameObject.Instantiate(grisGo);//通过事先的预制体实例化游戏物体
GameObject.CreatePrimitive(PrimitiveType.Cube);//通过API创建unity的原始对象

属性:

  • tag:标签,区分不同的游戏物体
  • layer:层级
  • activeInHierarchy / activeSelf:查看游戏物体状态

方法:

  • SetActive设置游戏物体的活动状态
  • CreatePrimitive
  • CompareTag 比较当前游戏物体的标签
  • getComponent<>( );

获取其他游戏物体:

        Find:通过游戏物体的名称查找

GameObject.Find("游戏物体的name");

        FindGameObjectWithTag:通过游戏物体标签查找

GameObject go=GameObject.FindGameObjectWithTag("游戏物体的tag");

GameObject[] gos=GameObject.FindGameObjectsWithTag("多个游戏物体的共同tag");

        FindObjectOfType:通过游戏物体类型查找

ComponentName cn=GameObject.FindObjectOfType<ComponentName>();

ComponentName[] cns=GameObject.FindObjectsOfType<ComponentName>();

                其中,ComponentName指游戏物体具体的组件名或脚本名

12.Monobehavior

        enabled函数判断是否启用

        isActiveAndEnabled判断是否激活并启用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值