关于Dotween使用的一些问题(Sequence)

关于Dotween使用的一些问题(Sequence),第1张

第一个问题是关于值类型和引用类型的问题

值类型

结构体:struct(直接派生于System.ValueType);

数值类型:

整 型:sbyte(System.SByte的别名),short(System.Int16),int(System.Int32),long (System.Int64),byte(System.Byte),ushort(System.UInt16),uint (System.UInt32),ulong(System.UInt64),char(System.Char);

浮点型:float(System.Single),double(System.Double);

用于财务计算的高精度decimal型:decimal(System.Decimal)。

bool型:bool(System.Boolean的别名);

用户定义的结构体(派生于System.ValueType)。

枚举:enum(派生于System.Enum);

可空类型(派生于System.Nullable<T>泛型结构体,T?实际上是System.Nullable<T>的别名)。

分配在线程的堆栈(stack)上,并且不包含任何指向实例数据的指针 不可以传递 =相当于给左边的复制了一份

引用类型

数组(派生于System.Array)

用户用定义的以下类型:

类:class(派生于System.Object);

接口:interface(接口不是一个“东西”,所以不存在派生于何处的问题。Anders在《C# Programming Language》中说,接口只是表示一种约定[contract]);

委托:delegate(派生于System.Delegate)。

object(System.Object的别名);

字符串:string(System.String的别名)。

这些类型可以传递 =是赋值

当我用DoTween想根据一个枚举自动选择到底是位置还是大小还是缩放 然后发现 物体没有动value的值在变 因为Vector3不是class是struct不能传递 相当于给value复制了一份参数 Dotween改变的是他的参数

换成

然后就变成了ulong?

我直接传递也没有报错说变成ulong 奇了怪

然后我又想起了ref可以传递参数

凉凉

又想到数组是引用类型

然后只能复制粘贴3次 差不多的

然后是Sequence问题

这样一个一个Append是没有问题 依次播放

但是一般项目中我们会给一个list或者数组

记住不要在循环里创建动画队列 那个会产生个新的动画队列 我以为那个不是new 结果内部应该封装的有

然后我是声明一个初始化函数 再别的类调用

然后动画队列就一起播放了 就很奇怪

然而必须在调用的类中声明 这就很坑了

DOTween的版本应该是旧了,需要更新成新的版本。

如果不能更新新版本,可以试着修改报提示的对应脚本。

该问题的原因是脚本中使用了旧的方法“OnLevelWasLoaded”,该方法在新版本的unity中被淘汰。

改写前的格式为:

void OnLevelWasLoaded()

{Debug.Log ("具体的方法内容")}

应改用SceneManager.sceneLoaded方法以委托事件的方式来实现:

1.在Awake或Start中增加委托事件;2.原方法改写为事件。

改写后的格式为:

void Awake ()

{SceneManager.sceneLoaded += LoadScene//新增事件}

void LoadScene(Scene scene, LoadSceneMode mode){Debug.Log ("具体的方法内容") }

修改后即可不再提示。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/7951717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存