gpt4 book ai didi

unity3d - 如何在 Unity 中正确创建无效的 Vector3?

转载 作者:行者123 更新时间:2023-12-04 02:22:29 24 4
gpt4 key购买 nike

我经常需要将无效位置传递给可以选择使用位置的函数(例如,RTS 单元操作)。但这不编译:

public abstract void CastSpell(Spell spell, Vector3 targetLocation = null);

那么我如何制作一个合适的 invaid Vector3 来确定无效/“不关心”的位置?我见过诸如坐标为 -999999 的向量之类的东西 - 但这是一个可能导致错误的讨厌技巧(例如,在巨大的 map 上)。

最佳答案

我以前遇到过类似的问题,我发现有两种解决方案。第一个解决方案是为该类创建一个包装器。

Class Vector3Wrapper
{
Vector3 vector;
}

然后我会简单地将 Vector3Wrapper 设置为 null,然后如果它不是 null 则访问它的向量。更好的方法是使它成为 Nullable 类型。下面是一个例子。

http://unitypatterns.com/nullable-types/

public class Character : MonoBehaviour 
{
//Notice the added "?"
Vector3? targetPosition;

void MoveTowardsTargetPosition()
{
//First, check if the variable has been assigned a value
if (targetPosition.HasValue)
{
//move towards targetPosition.Value
}
else
{
//targetPosition.Value is invalid! Don't use it!
}
}

关于unity3d - 如何在 Unity 中正确创建无效的 Vector3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26869292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com