淡入/淡出GameObject

我对编码很新,我仍然在努力发展思维逻辑,以帮助我创建我想要的游戏解决方案。 目前,我正在Unity尝试创建一个2D GameObject,这是一个隐藏秘密门的墙。 当玩家GameObject触发它时,我希望GameObject淡出(大约90%),露出后面的空间和隐藏的门。 到目前为止,我已经设法弄清楚如何在触发器上呈现“秘密墙”GO无效,所以它消失了,但这并不会产生我想要的视觉效果。 正如我所说的那样,我仍在努力开发编码器的思维方式,所以虽然我已经做了很多研究来解决这个问题,但很多结果我都不太清楚。 这是我的代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public class SecretDoor1 : MonoBehaviour { void OnTriggerEnter2D (Collider2D SecretDoorTrig) { if (SecretDoorTrig.gameObject.tag == “Player”) { GetComponent ().enabled = false; } else { GetComponent ().enabled = true; } } void OnTriggerExit2D (Collider2D SecretDoorTrig) { if (SecretDoorTrig.gameObject.tag == “Player”) { GetComponent ().enabled = […]

如何在C#中处理null或者可选的dll struct参数

如何处理使用pinvoke从C#调用的dll方法中的可选struct参数? 例如, 此处的lpSecurityAttributes参数应在缺席时传递为null 。 传递struct的正确方法似乎是使用ref ,但它不能有可选参数,或者一般取null 。 有什么方法可以达到这个目的?

如何在另一个进程使用文件时复制该文件

是否可以同时复制另一个进程正在使用的文件? 我问,因为当我尝试使用以下代码复制文件时,会引发exception: System.IO.File.Copy(s, destFile, true); 提出的例外是: 该进程无法访问文件’D:\ temp \ 1000000045.zip’,因为它正由另一个进程使用。 我不想创建新文件,我只想复制或删除它。 这可能吗?

Json.net序列化特定的私有字段

我有以下课程: public class TriGrid { private List _hexes; //other private fields… //other public proprerties } 我的目标是仅序列化_hexes字段,因此我创建了以下ContractResolver: internal class TriGridContractResolver : DefaultContractResolver { protected override List GetSerializableMembers(Type objectType) { return new List { objectType.GetMember(“_hexes”, BindingFlags.NonPublic | BindingFlags.Instance)[0] }; } } 当我想序列化TriGrid的一个实例时,我做了: var settings = new JsonSerializerSettings() { ContractResolver = new TriGridContractResolver() }; var json = JsonConvert.SerializeObject(someTriGrid, […]

XmlSerializer序列化通用接口列表

我正在尝试使用XmlSerializer来持久化List(T),其中T是一个接口。 序列化器不喜欢接口。 我很好奇是否有一种简单的方法可以使用XmlSerializer轻松地序列化异构对象列表。 这就是我想要的: public interface IAnimal { int Age(); } public class Dog : IAnimal { public int Age() { return 1; } } public class Cat : IAnimal { public int Age() { return 1; } } private void button1_Click(object sender, RoutedEventArgs e) { var animals = new List { new Dog(), new […]

HTTP发布C#中的XML数据

我需要HTTP将XML数据发布到具有名称为XMLdata的Textarea的URL。 我的XMl数据已准备就绪,位于XDocument Sendingxml = xml中; 但是我试过的邮政编码不起作用。 主要是因为我不知道如何将XML数据放在postData变量中,因为它只接受字符串。 这是我的代码: XDocument Sendingxml = xml; // string Sendingxml = ” 5 CrosskeyCaliforniaCA92620Condo456432013070100158346681a598cf23f412095f6092c281823e611160 “; // Create a request using a URL that can receive a post. WebRequest request = WebRequest.Create(“https://test.bluebookcva.net/order/testdirectplugin/3”); // Set the Method property of the request to POST. request.Method = “POST”; // Create POST data and convert […]

结合两个Linq lambda表达式

Expression<Func> fn1 = x => x.PossibleSubPath.MyStringProperty; Expression<Func> fn2 = x => x.Contains(“some literal”); 有没有办法创建一个新的lambda表达式,它基本上使用fn1的输出并将其用作fn2的输入? Expression<Func> fnCombined = … 我知道我可以立即创建这个函数,但问题是我正在制作一些通用代码,因此真的需要能够分别创建这两个函数,然后将它们组合在一起,以便Linq可以使用它们我的数据库对象(entity framework)。

与AABB矩形线交叉?

优选地,不使用任何类型的循环,因为这将在游戏中使用。 我希望将一条线与一个任意大小的矩形相交。 但我也希望返回交叉点[s]。 这是可能的,我做了一些谷歌搜索,但仍然没有解决。 该线使用(x1,y1,x2,y2)定义。 矩形也有这两点。

将DataTable转换为通用List?

public static IList ConvertTo(DataTable table) { if (table == null) { return null; } List rows = new List(); foreach (DataRow row in table.Rows) { rows.Add(row); } return ConvertTo(rows); } public static T ConvertItem(DataTable table) { T obj = default(T); if (table != null && table.Rows.Count > 0) { obj = CreateItem(table.Rows[0]); } return obj; […]

如何在C#中保护属性并使其内部化?

这是我缩短的抽象类: abstract class Report { protected internal abstract string[] Headers { get; protected set; } } 这是一个派生类: class OnlineStatusReport : Report { static string[] headers = new string[] { “Time”, “Message” } protected internal override string[] Headers { get { return headers; } protected set { headers = value; } } internal OnlineStatusReport() { Headers […]