Unity随心笔记2023.11.18

关键字 delegate

在C#中,delegate是一种用于声明和使用委托(delegate)的类型。委托是一种引用类型,用于封装对方法的引用,允许将方法作为参数传递给其他方法,或者将方法作为返回值从方法返回。

例子

using System;

public class Program
{
    // 定义一个委托类型,该委托可以引用一个无参数、无返回值的方法
    public delegate void MyDelegate();

    static void Main()
    {
        // 创建委托实例,并将方法 PrintMessage 与委托关联
        MyDelegate myDelegate = PrintMessage;

        // 调用委托,实际上会调用与之关联的方法 PrintMessage
        myDelegate();

        Console.ReadKey();
    }

    // 委托关联的方法,无参数、无返回值
    static void PrintMessage()
    {
        Console.WriteLine("Hello, Delegate!");
    }
}

 

MyDelegate是一个委托类型,它可以引用一个无参数、无返回值的方法。然后,通过实例化委托,并将其关联到方法 PrintMessage 上,最后调用委托时实际上调用了关联的方法。

委托在事件处理、回调函数等场景中很有用,它允许实现灵活的、基于委托的程序设计。

DOTween 在 safe mode 中捕获到错误

原因

  MonoBehaviour.Destroy(obj,2f);//第二个参数是延迟的时间(以秒为单位)。在这里,1表示延迟1秒后销毁obj。
  //注意:销毁时间必须大于所有动画时间的总和 不然会报错

小于动画时间总和进行如下报错

DOTWEEN ► SAFE MODE ► DOTween's safe mode captured 1 errors. This is usually ok (it's what safe mode is there for) but if your game is encountering issues you should set Log Behaviour to Default in DOTween Utility Panel in order to get detailed warnings when an error is captured (consider that these errors are always on the user side).

建议

 

个消息是关于 DOTween 库中 "safe mode" 的使用。当 DOTween 在 safe mode 中捕获到错误时,这意味着它检测到可能引起问题的情况,并以一种方式处理以防止崩溃或意外行为。

在你的情况下,它指示捕获到了一个错误。建议将 DOTween Utility 面板中的 Log Behaviour 设置为 Default。这将在捕获到错误时提供更详细的警告,帮助你识别和解决游戏中的任何问题。

操作步骤如下:

  1. 打开 Unity 编辑器中的 DOTween Utility 面板。
  2. 找到 Log Behaviour 设置。
  3. 将 Log Behaviour 设置为 Default。

这将提供有关错误的更详细信息,然后你可以调查并解决触发错误的代码或配置中的特定问题。

请记住,safe mode 的设计目的是防止崩溃并在存在问题时保持应用程序运行。但是,解决潜在问题是确保应用程序稳定和无错误运行的关键。

 关于DG.Tweening库

DG.Tweening 是一个用于在Unity中进行动画处理的第三方库。它提供了一种简单而强大的方式来创建和管理动画,使得在游戏和应用程序中实现平滑的过渡和动画效果变得更加容易。

  1. 链式调用: DOTween 允许你使用链式调用的方式定义和执行动画。这使得代码更加紧凑和易读。

  2. transform.DOMoveX(5f, 1f).SetEase(Ease.OutQuad);

  3. 缓动函数: 提供了多种缓动函数(easing functions),可以轻松地实现各种动画效果,如缓慢开始、缓慢结束等。

  4. transform.DOMoveY(3f, 1f).SetEase(Ease.InOutCubic);

  5. 循环和反向: 支持动画的循环播放和反向播放。

  6. transform.DORotate(new Vector3(0, 360, 0), 2f).SetLoops(-1, LoopType.Incremental);

  7. 延迟和回调: 允许你设置动画的延迟时间和在动画完成时执行回调。

  8. transform.DOMoveX(5f, 1f).SetDelay(0.5f).OnComplete(MyCallback);

  9. 多种动画类型: 支持位移、旋转、缩放等多种类型的动画。

  10. transform.DOMove(new Vector3(2f, 0, 0), 1f);

 善用【Header】

在Unity中,[Header] 是一个用于美化Inspector面板的属性标签。它允许你在Inspector中创建一个带有标题的折叠区域,以更清晰地组织和展示你的变量。

public class Example : MonoBehaviour
{
    [Header("General Settings")]
    public int health = 100;
    public string playerName = "Player 1";

    [Header("Weapon Settings")]
    public string weaponName = "Sword";
    public int damage = 20;
}
 

回顾 Instantiate 方法重载(部分)

  1. 根据原始对象实例化:

    public static Object Instantiate(Object original);

    这是最基本的重载,接受一个原始对象作为参数,并返回一个新的实例。这个实例是原始对象的拷贝。

    GameObject instance = Instantiate(originalObject);

  2. 指定位置和旋转实例化:

    public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);

    在基本实例化的基础上,可以指定新实例的位置和旋转。

    GameObject instance = Instantiate(originalObject, new Vector3(0, 0, 0), Quaternion.identity);

  3. 指定父级实例化:

    public static Object Instantiate(Object original, Transform parent);

    在基本实例化的基础上,可以指定新实例的父级。

    GameObject instance = Instantiate(originalObject, parentTransform);

  4. 指定位置、旋转和父级实例化:

    public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);

    结合上述三种参数,可以同时指定新实例的位置、旋转和父级。

    GameObject instance = Instantiate(originalObject, new Vector3(0, 0, 0), Quaternion.identity,

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity2021.2.18是由Unity Technologies 开发的一款最新版本的游戏引擎。该引擎可以协助开发者创建2D和3D游戏,并且提供了一套完整的工具库和丰富的资源库来支持开发。下面将对Unity2021.2.18的使用进行简要说明: 首先,安装Unity2021.2.18非常简单。只需前往官方网站下载安装程序,并按照提示执行操作即可成功安装。安装完成后,通过启动Unity编辑器来启动您的项目。 Unity2021.2.18的编辑器具有友好且易于使用的用户界面。开发者可以使用该界面来创建新项目、导入资源、展开场景和对象编辑等操作。 此外,Unity2021.2.18提供了许多常用的编辑和调试工具,使得开发和测试任务更加简单和高效。其中,VS Code的集成编辑器让代码编写过程中更加方便,沉浸式的调试界面允许开发者更快速地在代码中添加断点或停止。 在制作游戏的时候,Unity2021.2.18的最大特点是可以支持各大平台的开发,包括Android、Windows、iOS、macOS以及WebGL5等。此外,Unity2021.2.18还提供了大量的模板,方便开发者进行快速开发。 最后,Unity2021.2.18的编程和脚本语言支持多种语言,包括C #、C ++、JavaScript等,方便不同开发者的需求。 总的来说,Unity2021.2.18是一款强大而且易于使用的游戏引擎。通过提供丰富的工具和资源库,支持各种平台的开发,Unity 2021.2.18为游戏开发者提供了一个实现梦想的平台。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值