I was trying to make a dismemberment of my enemy when my sword collides with him. This script is in all the parts that i want to dismember.
This is the erro:
StackOverflowException: The requested operation caused a stack overflow.
UnityEngine.Object.IsNativeObjectAlive (UnityEngine.Object o) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:161)
UnityEngine.Object.CompareBaseObjects (UnityEngine.Object lhs, UnityEngine.Object rhs) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:140)
UnityEngine.Object.op_Inequality (UnityEngine.Object x, UnityEngine.Object y) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:405)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:35)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:37)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:37)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:37)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:37)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:37)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:37)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:37)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:37)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:37)
Limb.GetHit () (at Assets/Scripts/Enemy/Limb.cs:37)
Limb
This is the script that is causing this:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Limb : MonoBehaviour
{
[SerializeField] Limb[] ChildLimbs;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.tag == "Sword")
{
GetHit();
}
}
public void GetHit()
{
if(ChildLimbs.Length > 0)
{
foreach (Limb limb in ChildLimbs)
{
if(limb != null)
{
limb.GetHit();
}
}
}
// transform.localScale = Vector3.zero;
Destroy(gameObject);
}
}
↧