public void CollisionDetection() //This detects in { RaycastHit hit; if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.down), out hit, 5)) { Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.down) * hit.distance, Color.red); } if (this.transform.parent != null) { if (_StateHolder != RefinedReasourceState.Empty) { _StateHolder = RefinedReasourceState.Idle; } return; } else { if (_StateHolder != RefinedReasourceState.Empty) { if (hit.transform.tag == CraftingOutputTag) { FindClosestCraftingBench(); _StateHolder = RefinedReasourceState.OnOutput; } if (hit.transform.tag == InUseTag) { var temp = hit.transform.GetComponent <Beta_Script_Refined_Output>()._outputType; if ((int)temp == (int)_ResourceType) { _StateHolder = RefinedReasourceState.InUse; } } if (hit.transform.tag != CraftingOutputTag && hit.transform.tag != InUseTag) { _StateHolder = RefinedReasourceState.Idle; } } if (hit.transform.tag == DestroyTag) { Destroy(gameObject); } } }
public void ManageResource() { if (_StateHolder == RefinedReasourceState.InUse) { ResourceAmount -= ResourceUseRate * Time.deltaTime; } if (ResourceAmount <= 0) { _StateHolder = RefinedReasourceState.Empty; Material mat = GetComponent <MeshRenderer>().material; mat.color = DeadMat.color; } }