我对编程很新,我需要一些优化方面的帮助.基本上我的方法的一部分做:
for(int i = 0; i < Tiles.Length; i++)
{
x = Tiles[i].WorldPosition.x;
y = Tiles[i].WorldPosition.y;
z = Tiles[i].WorldPosition.z;
Tile topsearch = Array.Find(Tiles,
search => search.WorldPosition == Tiles[i].WorldPosition +
new Vector3Int(0,1,0));
if(topsearch.isEmpty)
{
// DoMyThing
}
}
Run Code Online (Sandbox Code Playgroud)
所以我正在寻找一个比当前Tile高1个单位的瓷砖.我的问题是,对于整个方法,它需要0.1秒,这导致一个小的hick up .. Array.Find没有方法是0.01秒.
我也尝试了一个for循环,但仍然不是很好的结果,因为我还需要3个底部,左侧和右侧的检查.
有人可以帮助我,并指出我获得一些快速结果的方法吗?也许我应该选择像线程一样的东西?
如果我们使用Type作为字典的键,是否可以将该类型仅限制为特定类型?例如:
public abstract class Base
{ }
public class InheritedObject1 : Base
{ }
public class InheritedObject2 : Base
{ }
public class Program
{
public Dictionary<Type, string> myDictionary = new Dictionary<Type, string>();
}
Run Code Online (Sandbox Code Playgroud)
因此,从上面给出的代码中我想将Type仅限制为:Base和从中继承的每个类.有可能做出这样的约束吗?
所以我的问题是:我有一个只由FieldInfo表示的对象实例.我没有其他访问该对象的权限.是否可以仅通过字段信息获取该对象实例?
MyObject myObject = fieldInfo.SomeMethodOrProperty as MyObject;
Run Code Online (Sandbox Code Playgroud)
这只是一个例子,但我认为你得到的图片.
我试图用Activator.CreateInstance()构建一个对象,但是我收到的是因为某些未知的原因.
public class SpawnManager
{
public void CreateSpawnable<T>()
{
Type type = typeof(T);
ISpawnable<SpawnableParameters> spawnable = Activator.CreateInstance(type) as ISpawnable<SpawnableParameters>;
// the spawnable object always returns null
}
public void Start()
{
CreateSpawnable<SpawnableCollectible>();
}
}
public class SpawnableCollectible : ISpawnable<ParametersCollectible>
{
public void Spawn(ParametersCollectible parameters)
{
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么我不能创建一个实现给定接口的对象实例,并编写正确的方法来实例化这样的对象吗?