private AnimalAI FindPartner() { Transform partnerTransform = ai.FindClosestThing(transform.position, targetMask, vision); if (partnerTransform == null || partnerTransform.gameObject == null) { return(null); } if (AnimalManager.Instance.animals.ContainsKey(partnerTransform.gameObject.GetInstanceID())) { AnimalAI partner = AnimalManager.Instance.animals[partnerTransform.gameObject.GetInstanceID()]; Identity identity = partner.Identity; if (identity.Sex != sex && identity.canReproduce && partner.currentState != Case.HUNGER && partner.currentState != Case.THIRST) { partner.OnCaseChanged(new CaseChangedEventArgs(new ReproductionCaseData(ai), Case.REPRODUCTION)); return(partner); } else { return(null); } } return(null); }
private Transform FindWater() { Transform water = ai.FindClosestThing(ai.transform.position, targetMask, vision); if (water != null) { ai.Memory.CompareLocations(transform.position, water, Memory.MemoryType.WATER); } else { water = ai.Memory.GetNearest(transform.position, Memory.MemoryType.WATER); } Inform(water); return(water); }
private Transform FindFood() { Transform food = ai.FindClosestThing(ai.transform.position, targetMask, vision); // Otçulların yemek hafızası varken etçillerin yok. if (targetMask == LayerMask.GetMask("Food")) { if (food != null) { ai.Memory.CompareLocations(transform.position, food, Memory.MemoryType.FOOD); } else { food = ai.Memory.GetNearest(transform.position, Memory.MemoryType.FOOD); } } if (food != null) { Inform(food); } return(food); }
private Transform Search() { return(ai.FindClosestThing(transform.position, targetMask, vision)); }