Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

データアセット由来のLimitがあるときに選択してDeleteキーを押すとクラッシュの可能性があります。 #72

Closed
monguri opened this issue Dec 7, 2022 · 1 comment

Comments

@monguri
Copy link

monguri commented Dec 7, 2022

FKawaiiPhysicsEditMode::InputKey()の実装ですが、

		else if (InKey == EKeys::Delete && IsValidSelectCollision())
		{
			switch (SelectCollisionType)
			{
			case ECollisionLimitType::Spherical:
				RuntimeNode->SphericalLimits.RemoveAt(SelectCollisionIndex);
				GraphNode->Node.SphericalLimits.RemoveAt(SelectCollisionIndex);
				break;
			case ECollisionLimitType::Capsule:
				RuntimeNode->CapsuleLimits.RemoveAt(SelectCollisionIndex);
				GraphNode->Node.CapsuleLimits.RemoveAt(SelectCollisionIndex);
				break;
			case ECollisionLimitType::Planar:
				RuntimeNode->PlanarLimits.RemoveAt(SelectCollisionIndex);
				GraphNode->Node.PlanarLimits.RemoveAt(SelectCollisionIndex);
				break;
			case ECollisionLimitType::None: break;
			default: ;
			}
		}

となっていますが、SelectCollisionIsFromDataAsset による分岐をしていないため、
SphericalLimitsDataの方にLimitがあって、そちらを選択してるときにDeleteボタンを押すと
空のSphericalLimitsに対してRemoveAt()が走り、クラッシュする、ということが起きそうです。
こちらでもSelectCollisionIsFromDataAssetによる分岐をすれば解決すると思います。

pafuhana1213 added a commit that referenced this issue May 14, 2023
Fix issue:データアセット由来のLimitがあるときに選択してDeleteキーを押すとクラッシュの可能性があります。 #72
@pafuhana1213
Copy link
Owner

反応が遅くなって申し訳ありません…
ご指摘の通りでしたので、SelectCollisionIsFromDataAssetを使った分岐を入れることでクラッシュをしないようにしました!
09febed

ご報告だけでなく解決の糸口までご共有いただき、本当にありがとうございました!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants