草庐IT

unity委托

全部标签

c# - 委托(delegate)可以有可选参数吗?

在我尝试添加boolNetworkAvailable=true部分之前,我的以下代码运行良好。现在我在下面的第4行得到了一个Methodnameexpected编译时异常。voidNetworkStatus_AvailabilityChanged(objectsender,NetworkStatusChangedArgse){varnetworkAvailable=e.IsAvailable;SetUpdateHUDConnectedModed=newSetUpdateHUDConnectedMode(UpdateHUDConnectedMode(networkAvailable));

c# - lambda 函数是否比委托(delegate)/匿名函数更快?

我假设lambda函数、delegates和anonymousfunctions具有相同的主体将具有相同的“速度”,但是,运行以下简单程序:staticvoidMain(string[]args){Listitems=newList();Randomrandom=newRandom();for(inti=0;iresult;Func@delegate=delegate(inti){returnilambda=i=>ii我得到:Delegate:4.2948msLambda:0.0019msAnonymous:0.0034ms虽然可以忽略不计,但为什么这三种-显然相同-方法以不同的速度运

c# - 使用 C# 从 Unity3D 中的输入字段获取文本

我正在尝试使用C#在Unity3D中的inputField中获取文本。我在我的编辑器中放置了一个inputField,重命名并标记为:Username_field。我的问题是:如何在C#脚本中获取InputFieldUsername_field中的文本? 最佳答案 将以下monobehaviour脚本附加到您的InputField游戏对象:publicclasstest:MonoBehaviour{voidStart(){varinput=gameObject.GetComponent();varse=newInputField.S

c# - Unity 2d跳跃脚本

有没有人有一个好的2d游戏unity跳转脚本?我的代码有效,但离跳跃还很远,看起来它在飞。usingUnityEngine;usingSystem.Collections;publicclassmovingplayer:MonoBehaviour{publicVector2speed=newVector2(10,10);privateVector2movement=newVector2(1,1);//UsethisforinitializationvoidStart(){}//UpdateiscalledonceperframevoidUpdate(){floatinputX=Inpu

c# - Unity3d 5 WavePro 动态网格碰撞器

我正在使用Water4Advance在Unity3d5.0中模拟海浪。我用GerstnerDisplace在Runtime中置换了我的飞机。我看到网格是如何变形的,我向它添加了一个MeshCollider,我想在运行时刷新这个碰撞器网格。我使用这个脚本在Unity4.6上工作:MeshCollidercollider=GetComponent();Meshmesh=GetComponent().mesh;collider.sharedMesh=null;collider.sharedMesh=mesh;但现在我只得到了扁平的原始飞机预制件。如何使用置换后的网格更新此MeshCollid

c# - 将 Sprite 对象数组组合成一个 Sprite - Unity

我在Unity中有一组Sprite对象。它们的大小取决于加载的图像。我想像一张平铺map一样将它们并排组合成一个图像。我希望它们的布局就像您正在形成一行图像一样,一个接一个。(注意:不是一个在另一个之上)我怎样才能做到这一点?我合并的原因(仅供那些想知道的人)是因为我使用的是polygon2DCollider。由于并排使用多个碰撞器时会发生一些奇怪的行为,因此我决定在添加一个大型多边形碰撞器之前先合并图像。请注意,这些事情发生在运行时。我不能只创建一个大图像并加载它,因为图像的顺序仅在运行时确定。我希望能得到一些帮助。谢谢。 最佳答案

c# - Unity [UNET] 同步非玩家对象转换不工作

我正在尝试使用UNET在Unity中同步一个非玩家游戏对象的变换。基本上我有一个玩家可以对抗那个对象并移动它,我希望那个对象的转换在服务器和客户端中以相同的方式改变。我遵循了教程https://unity3d.com/learn/tutorials/topics/multiplayer-networking/handling-non-player-objects?playlist=29690并且可以让播放器+子弹示例运行良好。然后我创建了一个新对象,添加了具有本地玩家权限的网络身份和网络转换(更新1秒),创建了一个预制件并将其作为“RegisteredSpawnablePrefab”添

c# - 使用反射创建通用委托(delegate)

我有以下代码:classProgram{staticvoidMain(string[]args){newProgram().Run();}publicvoidRun(){//worksFunc>static_delegate=newFunc>(SomeMethod);MethodInfomi=this.GetType().GetMethod("SomeMethod").MakeGenericMethod(newType[]{typeof(String)});//throwsArgumentException:ErrorbindingtotargetmethodFunc>reflecti

c# - 使用 Func<>(或 Action<>)或创建自己的委托(delegate)?

哪个更好,比如说,方法中的参数类型(与LINQ无关)。显然Func更好,因为它更简单,更具描述性,如果每个人都在使用它,一切都会变得兼容(好)。但是我注意到Microsoft在某些库中使用了自己的委托(delegate),例如事件处理程序。那么,它们各自的优点和缺点是什么?我应该什么时候使用它?编辑:显然Func仅在3.5中可用,因此这可能是我看到非Func委托(delegate)的主要原因。还有其他不使用Func的原因吗?(例如:this来自.NET4)同样的问题也适用于Action 最佳答案 Func在非常清楚它们的用途并且输入

c# - 配置 Unity 以解析采用修饰依赖项的类型,该依赖项的参数随注入(inject)的类型而变化

这是一个相当直接的装饰器模式场景,复杂的是装饰类型有一个构造函数参数,该参数取决于它被注入(inject)的类型。我有一个这样的界面:interfaceIThing{voidDo();}像这样的实现:classRealThing:IThing{publicRealThing(stringconfiguration){...implementation...}publicvoidDo(){...implementation...}}还有这样的装饰器:classDecoratingThing:IThing{IThing_innerThing;publicDecoratingThing(IT