{"id":2256,"date":"2025-02-06T23:29:54","date_gmt":"2025-02-06T14:29:54","guid":{"rendered":"https:\/\/rebron.net\/blog\/?p=2256"},"modified":"2025-02-06T23:29:54","modified_gmt":"2025-02-06T14:29:54","slug":"%e3%80%90ai%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%a4%9c%e8%a8%bc%e3%80%913d%e7%94%9f%e6%85%8b%e3%82%b7%e3%83%9f%e3%83%a5%e3%83%ac%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3-2","status":"publish","type":"post","link":"https:\/\/rebron.net\/blog\/%e3%80%90ai%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%a4%9c%e8%a8%bc%e3%80%913d%e7%94%9f%e6%85%8b%e3%82%b7%e3%83%9f%e3%83%a5%e3%83%ac%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3-2\/","title":{"rendered":"\u3010AI\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u691c\u8a3c\u30113D\u751f\u614b\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3010ChatGPT 4o\u3011"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading jinr-heading d--bold\">\u30d7\u30ed\u30f3\u30d7\u30c8<\/h2>\n\n\n\n<p>\u3042\u306a\u305f\u306fUnity\u306e\u30d7\u30ed\u30d5\u30a7\u30c3\u30b7\u30e7\u30ca\u30eb\u306a\u30b2\u30fc\u30e0\u958b\u767a\u8005\u3067\u3059\u3002C#\u3092\u4f7f\u7528\u3057\u3066\u3001\u30b7\u30f3\u30d7\u30eb\u306a<strong>\u751f\u614b\u7cfb\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3<\/strong>\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30b2\u30fc\u30e0\u306f\u4ee5\u4e0b\u306e\u8981\u4ef6\u3092\u6e80\u305f\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading jinr-heading d--bold\"><strong>1. \u57fa\u672c\u8981\u4ef6<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li>Unity\u306e<strong>3D\u74b0\u5883<\/strong>\u3067\u52d5\u4f5c\u3059\u308b<\/li>\n\n\n\n<li>\u751f\u614b\u7cfb\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u88c5<\/li>\n\n\n\n<li><em>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\uff08\u52d5\u7269\uff09<\/em>*\u304c\u98df\u6599\u3092\u63a2\u3057\u3001\u7e41\u6b96\u3057\u3001\u6b7b\u306c<\/li>\n\n\n\n<li>\u30e9\u30f3\u30c0\u30e0\u306b\u914d\u7f6e\u3055\u308c\u308b\u74b0\u5883\u3067\u3001AI\u304c\u9069\u5207\u306a\u884c\u52d5\u3092\u3068\u308b<\/li>\n\n\n\n<li>\u3053\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u9762\u767d\u304f\u3059\u308b\u30e6\u30cb\u30fc\u30af\u306a\u8981\u7d20\u3092\u8003\u6848\u30fb\u5b9f\u88c5<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading jinr-heading d--bold\"><strong>2. \u74b0\u5883<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><strong>\u30d5\u30a3\u30fc\u30eb\u30c9<\/strong>\uff08\u5e73\u9762\uff09\u306b\u3001<strong>\u30e9\u30f3\u30c0\u30e0\u306a\u4f4d\u7f6e<\/strong>\u3067\u98df\u6599\u304c\u751f\u6210\u3055\u308c\u308b<\/li>\n\n\n\n<li>\u8907\u6570\u306e\u52d5\u7269\uff08\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\uff09\u304c\u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u5185\u3092\u79fb\u52d5\u3059\u308b<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading jinr-heading d--bold\"><strong>3. AI\u306e\u884c\u52d5\u30eb\u30fc\u30eb<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><strong>\u79fb\u52d5:<\/strong> \u30e9\u30f3\u30c0\u30e0\u306b\u6b69\u304d\u56de\u308b\u304c\u3001\u98df\u6599\u304c\u3042\u308b\u3068\u305d\u3061\u3089\u306b\u5411\u304b\u3046<\/li>\n\n\n\n<li><strong>\u98df\u4e8b:<\/strong> \u98df\u6599\u306b\u5230\u9054\u3059\u308b\u3068\u30a8\u30cd\u30eb\u30ae\u30fc\u304c\u56de\u5fa9<\/li>\n\n\n\n<li><strong>\u7e41\u6b96:<\/strong> \u4e00\u5b9a\u306e\u30a8\u30cd\u30eb\u30ae\u30fc\u3092\u6301\u3064\u3068\u3001\u65b0\u3057\u3044\u500b\u4f53\u3092\u751f\u6210<\/li>\n\n\n\n<li><strong>\u6b7b\u4ea1:<\/strong> \u30a8\u30cd\u30eb\u30ae\u30fc\u304c\u30bc\u30ed\u306b\u306a\u308b\u3068\u6d88\u6ec5<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading jinr-heading d--bold\"><strong>4. \u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30ed\u30b8\u30c3\u30af<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><strong>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306f1\u30d5\u30ec\u30fc\u30e0\u3054\u3068\u306b\u30a8\u30cd\u30eb\u30ae\u30fc\u3092\u6d88\u8cbb\u3059\u308b<\/strong><\/li>\n\n\n\n<li><strong>\u98df\u6599\u306f\u6642\u9593\u7d4c\u904e\u3067\u4e00\u5b9a\u6570\u30e9\u30f3\u30c0\u30e0\u306b\u518d\u751f\u6210<\/strong><\/li>\n\n\n\n<li><strong>AI\u306e\u79fb\u52d5\u306f\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30b7\u30b9\u30c6\u30e0\u307e\u305f\u306f\u30b7\u30f3\u30d7\u30eb\u306a\u30e9\u30f3\u30c0\u30e0\u30a6\u30a9\u30fc\u30af\u3092\u4f7f\u7528<\/strong><\/li>\n\n\n\n<li><strong>\u5168\u3066\u306e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u6b7b\u306c\u3068\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u7d42\u4e86<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading jinr-heading d--bold\"><strong>5. \u6bd4\u8f03\u30dd\u30a4\u30f3\u30c8<\/strong><\/h3>\n\n\n\n<p>\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u7570\u306a\u308bAI\u30e2\u30c7\u30eb\u3067\u6bd4\u8f03\u3059\u308b\u305f\u3081\u3001\u4ee5\u4e0b\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u3053\u3068\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><strong>AI\u306e\u52d5\u304d\u304c\u81ea\u7136\u304b\uff08\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u6b63\u3057\u304f\u98df\u6599\u3092\u63a2\u305b\u308b\u304b\uff09<\/strong><\/li>\n\n\n\n<li><strong>\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u304c\u7834\u7dbb\u3057\u306a\u3044\u304b\uff08\u3059\u3050\u306b\u5168\u6ec5\u3057\u306a\u3044\u304b\uff09<\/strong><\/li>\n\n\n\n<li><strong>\u30b2\u30fc\u30e0\u304c\u9069\u5207\u306b\u7d42\u4e86\u3059\u308b\u304b\uff08\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u7121\u9650\u306b\u5897\u3048\u7d9a\u3051\u306a\u3044\u304b\uff09<\/strong><\/li>\n\n\n\n<li><strong>\u30b3\u30fc\u30c9\u304c\u660e\u78ba\u3067\u5206\u304b\u308a\u3084\u3059\u3044\u304b\uff08\u6574\u7406\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a2d\u8a08\uff09<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading jinr-heading d--bold\"><strong>6. \u30b3\u30fc\u30c9\u8981\u4ef6<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><strong>C#\u3092\u4f7f\u7528\u3057\u3001Unity\u306e\u6a19\u6e96\u7684\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\uff08MonoBehaviour\u3001NavMesh\u306a\u3069\uff09\u3092\u6d3b\u7528\u3059\u308b<\/strong><\/li>\n\n\n\n<li><strong>\u6700\u4f4e\u9650\u306eUI\uff08\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u6570\u3001\u98df\u6599\u6570\u306e\u30ab\u30a6\u30f3\u30bf\u30fc\uff09\u3092\u8868\u793a<\/strong><\/li>\n\n\n\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8003\u616e\u3057\u3001\u5927\u91cf\u306e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u3044\u3066\u3082FPS\u304c\u6975\u7aef\u306b\u4f4e\u4e0b\u3057\u306a\u3044\u3088\u3046\u306b\u3059\u308b<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading jinr-heading d--bold\"><strong>7. \u51fa\u529b<\/strong><\/h3>\n\n\n\n<p><strong>\u5b8c\u5168\u306aUnity C#\u30b3\u30fc\u30c9\u3092\u51fa\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><strong>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u30b9\u30af\u30ea\u30d7\u30c8\uff08Animal.cs\uff09<\/strong><\/li>\n\n\n\n<li><strong>\u98df\u6599\u306e\u30b9\u30af\u30ea\u30d7\u30c8\uff08Food.cs\uff09<\/strong><\/li>\n\n\n\n<li><strong>\u30b2\u30fc\u30e0\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u306e\u30b9\u30af\u30ea\u30d7\u30c8\uff08GameManager.cs\uff09<\/strong><\/li>\n\n\n\n<li><strong>Unity\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u624b\u9806\uff08\u3069\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u30a2\u30bf\u30c3\u30c1\u3059\u308b\u304b\uff09<\/strong><\/li>\n<\/ul>\n\n\n\n<p>\u3053\u306e\u30b3\u30fc\u30c9\u3092\u57fa\u306b\u3001\u958b\u767a\u8005\u304c\u7c21\u5358\u306b\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading jinr-heading d--bold\">\u51fa\u529b<\/h2>\n\n\n\n<p>\u3053\u3053\u306b\u3001Unity\u3067<strong>\u751f\u614b\u7cfb\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3<\/strong>\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306e<strong>\u5b8c\u5168\u306aC#\u30b9\u30af\u30ea\u30d7\u30c8<\/strong>\u3092\u7528\u610f\u3057\u307e\u3057\u305f\u3002<br>\u3053\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\uff08\u52d5\u7269\uff09\u304c\u98df\u6599\u3092\u63a2\u3057\u3001\u30a8\u30cd\u30eb\u30ae\u30fc\u7ba1\u7406\u3092\u884c\u3044\u306a\u304c\u3089\u751f\u5b58\u30fb\u7e41\u6b96\u30fb\u6b7b\u4ea1\u3092\u7e70\u308a\u8fd4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading jinr-heading d--bold\"><strong>\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u624b\u9806<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list jinr-list\">\n<li><strong>Unity\uff083D\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\uff09\u3092\u4f5c\u6210<\/strong><\/li>\n\n\n\n<li><strong>\u300cPlane\u300d\u3092\u4f5c\u6210\u3057\u3001\u74b0\u5883\u3092\u4f5c\u308b<\/strong><\/li>\n\n\n\n<li><strong>\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u9069\u7528\u3059\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210<\/strong>\n<ul class=\"wp-block-list jinr-list\">\n<li><code>GameManager<\/code>\uff08\u7a7a\u306eGameObject\uff09<\/li>\n\n\n\n<li><code>AnimalPrefab<\/code>\uff08\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u7528\u306e\u30d7\u30ec\u30cf\u30d6\uff09<\/li>\n\n\n\n<li><code>FoodPrefab<\/code>\uff08\u98df\u6599\u7528\u306e\u30d7\u30ec\u30cf\u30d6\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NavMesh\u3092\u8a2d\u5b9a<\/strong>\uff08\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u79fb\u52d5\u7528\uff09\n<ul class=\"wp-block-list jinr-list\">\n<li><code>Plane<\/code>\u3092\u9078\u629e\u3057\u3001<code>Navigation<\/code>\u30bf\u30d6\u3067<code>Static<\/code>\u306b\u30c1\u30a7\u30c3\u30af\u3092\u5165\u308c\u3001<code>Bake<\/code>\u3092\u30af\u30ea\u30c3\u30af<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u305d\u308c\u305e\u308c\u9069\u7528<\/strong>\n<ul class=\"wp-block-list jinr-list\">\n<li><code>GameManager.cs<\/code> \u2192 <code>GameManager<\/code>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a2\u30bf\u30c3\u30c1<\/li>\n\n\n\n<li><code>Animal.cs<\/code> \u2192 <code>AnimalPrefab<\/code>\u306b\u30a2\u30bf\u30c3\u30c1<\/li>\n\n\n\n<li><code>Food.cs<\/code> \u2192 <code>FoodPrefab<\/code>\u306b\u30a2\u30bf\u30c3\u30c1<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading jinr-heading d--bold\"><strong>1. <code>GameManager.cs<\/code>\uff08\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u7ba1\u7406\uff09<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><strong>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3068\u98df\u6599\u3092\u7ba1\u7406<\/strong><\/li>\n\n\n\n<li><strong>\u6642\u9593\u7d4c\u904e\u3067\u98df\u6599\u3092\u30e9\u30f3\u30c0\u30e0\u751f\u6210<\/strong><\/li>\n\n\n\n<li><strong>\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u7d42\u4e86\u5224\u5b9a\u3092\u884c\u3046<\/strong><\/li>\n<\/ul>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-file=\"GameManager.cs\" data-lang=\"C#\" data-show-lang=\"1\"><code>using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\npublic class GameManager : MonoBehaviour\n{\n    public GameObject animalPrefab;\n    public GameObject foodPrefab;\n    public int initialAnimalCount = 10;\n    public int foodSpawnRate = 5; \/\/ \u4f55\u79d2\u3054\u3068\u306b\u98df\u6599\u3092\u751f\u6210\u3059\u308b\u304b\n    public int maxFood = 20;\n    public Vector2 fieldSize = new Vector2(20, 20);\n\n    private List&lt;GameObject&gt; animals = new List&lt;GameObject&gt;();\n    private List&lt;GameObject&gt; foods = new List&lt;GameObject&gt;();\n\n    void Start()\n    {\n        \/\/ \u521d\u671f\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u751f\u6210\n        for (int i = 0; i &lt; initialAnimalCount; i++)\n        {\n            SpawnAnimal();\n        }\n\n        \/\/ \u98df\u6599\u3092\u5b9a\u671f\u7684\u306b\u751f\u6210\n        StartCoroutine(SpawnFoodRoutine());\n    }\n\n    void Update()\n    {\n        \/\/ \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u5168\u6ec5\u3057\u305f\u3089\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u7d42\u4e86\n        if (animals.Count == 0)\n        {\n            Debug.Log(&quot;Simulation Ended: All animals have died.&quot;);\n            StopAllCoroutines();\n        }\n    }\n\n    void SpawnAnimal()\n    {\n        Vector3 position = new Vector3(Random.Range(-fieldSize.x, fieldSize.x), 1, Random.Range(-fieldSize.y, fieldSize.y));\n        GameObject animal = Instantiate(animalPrefab, position, Quaternion.identity);\n        animals.Add(animal);\n    }\n\n    IEnumerator SpawnFoodRoutine()\n    {\n        while (true)\n        {\n            yield return new WaitForSeconds(foodSpawnRate);\n            if (foods.Count &lt; maxFood)\n            {\n                SpawnFood();\n            }\n        }\n    }\n\n    void SpawnFood()\n    {\n        Vector3 position = new Vector3(Random.Range(-fieldSize.x, fieldSize.x), 0.5f, Random.Range(-fieldSize.y, fieldSize.y));\n        GameObject food = Instantiate(foodPrefab, position, Quaternion.identity);\n        foods.Add(food);\n    }\n\n    public void RemoveAnimal(GameObject animal)\n    {\n        animals.Remove(animal);\n    }\n\n    public void RemoveFood(GameObject food)\n    {\n        foods.Remove(food);\n    }\n}\n<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading jinr-heading d--bold\"><strong>2. <code>Animal.cs<\/code>\uff08\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u884c\u52d5AI\uff09<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><strong>\u98df\u6599\u3092\u63a2\u3057\u3066\u79fb\u52d5<\/strong><\/li>\n\n\n\n<li><strong>\u98df\u6599\u3092\u98df\u3079\u308b\u3068\u30a8\u30cd\u30eb\u30ae\u30fc\u56de\u5fa9<\/strong><\/li>\n\n\n\n<li><strong>\u30a8\u30cd\u30eb\u30ae\u30fc\u304c\u4e00\u5b9a\u4ee5\u4e0a\u3067\u7e41\u6b96<\/strong><\/li>\n\n\n\n<li><strong>\u30a8\u30cd\u30eb\u30ae\u30fc\u304c\u30bc\u30ed\u306b\u306a\u308b\u3068\u6b7b\u4ea1<\/strong><\/li>\n<\/ul>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-file=\"Animal.cs\" data-lang=\"C#\" data-show-lang=\"1\"><code>using System.Collections;\nusing UnityEngine;\nusing UnityEngine.AI;\n\npublic class Animal : MonoBehaviour\n{\n    public float energy = 100f;\n    public float energyLossRate = 1f;\n    public float energyGain = 30f;\n    public float reproductionThreshold = 120f;\n    public float detectionRange = 10f;\n\n    private NavMeshAgent agent;\n    private GameManager gameManager;\n\n    void Start()\n    {\n        agent = GetComponent&lt;NavMeshAgent&gt;();\n        gameManager = FindObjectOfType&lt;GameManager&gt;();\n        StartCoroutine(BehaviorLoop());\n    }\n\n    IEnumerator BehaviorLoop()\n    {\n        while (energy &gt; 0)\n        {\n            \/\/ \u98df\u6599\u3092\u63a2\u3059\n            GameObject food = FindNearestFood();\n            if (food != null)\n            {\n                agent.SetDestination(food.transform.position);\n                while (Vector3.Distance(transform.position, food.transform.position) &gt; 1f)\n                {\n                    energy -= energyLossRate * Time.deltaTime;\n                    yield return null;\n                }\n                EatFood(food);\n            }\n            else\n            {\n                \/\/ \u30e9\u30f3\u30c0\u30e0\u79fb\u52d5\n                Vector3 randomPosition = new Vector3(Random.Range(-10, 10), 1, Random.Range(-10, 10));\n                agent.SetDestination(randomPosition);\n                yield return new WaitForSeconds(3);\n            }\n\n            \/\/ \u7e41\u6b96\u30c1\u30a7\u30c3\u30af\n            if (energy &gt;= reproductionThreshold)\n            {\n                Reproduce();\n            }\n\n            \/\/ \u6b7b\u4ea1\u30c1\u30a7\u30c3\u30af\n            if (energy &lt;= 0)\n            {\n                Die();\n            }\n        }\n    }\n\n    GameObject FindNearestFood()\n    {\n        GameObject[] foods = GameObject.FindGameObjectsWithTag(&quot;Food&quot;);\n        GameObject nearestFood = null;\n        float minDistance = detectionRange;\n\n        foreach (GameObject food in foods)\n        {\n            float distance = Vector3.Distance(transform.position, food.transform.position);\n            if (distance &lt; minDistance)\n            {\n                minDistance = distance;\n                nearestFood = food;\n            }\n        }\n\n        return nearestFood;\n    }\n\n    void EatFood(GameObject food)\n    {\n        energy += energyGain;\n        gameManager.RemoveFood(food);\n        Destroy(food);\n    }\n\n    void Reproduce()\n    {\n        energy \/= 2; \/\/ \u89aa\u306e\u30a8\u30cd\u30eb\u30ae\u30fc\u3092\u534a\u5206\u306b\u3059\u308b\n        gameManager.SendMessage(&quot;SpawnAnimal&quot;);\n    }\n\n    void Die()\n    {\n        gameManager.RemoveAnimal(gameObject);\n        Destroy(gameObject);\n    }\n}\n<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading jinr-heading d--bold\"><strong>3. <code>Food.cs<\/code>\uff08\u98df\u6599\u306e\u7ba1\u7406\uff09<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><strong>\u98df\u6599\u304c\u98df\u3079\u3089\u308c\u308b\u3068\u524a\u9664\u3055\u308c\u308b<\/strong><\/li>\n<\/ul>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-file=\"Food.cs\" data-lang=\"C#\" data-show-lang=\"1\"><code>using UnityEngine;\n\npublic class Food : MonoBehaviour\n{\n    void Start()\n    {\n        gameObject.tag = &quot;Food&quot;;\n    }\n}\n<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading jinr-heading d--bold\"><strong>\u307e\u3068\u3081<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><code>GameManager.cs<\/code> \u2192 <strong>\u30b2\u30fc\u30e0\u306e\u9032\u884c\u7ba1\u7406<\/strong><\/li>\n\n\n\n<li><code>Animal.cs<\/code> \u2192 <strong>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306eAI\uff08\u79fb\u52d5\u30fb\u98df\u4e8b\u30fb\u7e41\u6b96\u30fb\u6b7b\u4ea1\uff09<\/strong><\/li>\n\n\n\n<li><code>Food.cs<\/code> \u2192 <strong>\u98df\u6599\u306e\u7ba1\u7406<\/strong><\/li>\n\n\n\n<li><strong>NavMesh\u3092\u5229\u7528\u3057\u3066\u3001\u30ea\u30a2\u30eb\u306a\u79fb\u52d5\u3092\u5b9f\u88c5<\/strong><\/li>\n\n\n\n<li><strong>\u6642\u9593\u7d4c\u904e\u3067\u98df\u6599\u3092\u518d\u751f\u6210\u3057\u3001\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u3092\u7dad\u6301<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u3053\u306e\u30b3\u30fc\u30c9\u3092Unity\u306b\u9069\u7528\u3059\u308c\u3070\u3001<strong>\u30b7\u30f3\u30d7\u30eb\u306a\u751f\u614b\u7cfb\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3<\/strong>\u304c\u52d5\u4f5c\u3057\u307e\u3059\u3002<br>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306f\u98df\u6599\u3092\u63a2\u3057\u3066\u52d5\u304d\u56de\u308a\u3001\u30a8\u30cd\u30eb\u30ae\u30fc\u7ba1\u7406\u3092\u3057\u306a\u304c\u3089\u751f\u304d\u5ef6\u3073\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>\u3053\u306e\u30b7\u30b9\u30c6\u30e0\u3092\u62e1\u5f35\u3059\u308b\u306b\u306f\uff1f<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list jinr-list\">\n<li><strong>\u7570\u306a\u308b\u52d5\u7269\u30bf\u30a4\u30d7\uff08\u8089\u98df\u30fb\u8349\u98df\uff09\u3092\u8ffd\u52a0<\/strong><\/li>\n\n\n\n<li><strong>\u3088\u308a\u9ad8\u5ea6\u306aAI\uff08\u5b66\u7fd2\u30fb\u9032\u5316\uff09\u3092\u5c0e\u5165<\/strong><\/li>\n\n\n\n<li><strong>\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u30c7\u30fc\u30bf\u3092\u53ef\u8996\u5316<\/strong><\/li>\n<\/ul>\n\n\n\n<p>\u3053\u306e\u30b3\u30fc\u30c9\u3092\u30d9\u30fc\u30b9\u306b\u3001\u9762\u767d\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u3063\u3066\u307f\u3066\u304f\u3060\u3055\u3044\uff01\ud83d\ude80<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30d7\u30ed\u30f3\u30d7\u30c8 \u3042\u306a\u305f\u306fUnity\u306e\u30d7\u30ed\u30d5\u30a7\u30c3\u30b7\u30e7\u30ca\u30eb\u306a\u30b2\u30fc\u30e0\u958b\u767a\u8005\u3067\u3059\u3002C#\u3092\u4f7f\u7528\u3057\u3066\u3001\u30b7\u30f3\u30d7\u30eb\u306a\u751f\u614b\u7cfb\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30b2\u30fc\u30e0\u306f\u4ee5\u4e0b\u306e\u8981\u4ef6\u3092\u6e80\u305f\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 1. \u57fa\u672c\u8981\u4ef6 2. \u74b0\u5883 3. AI [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jinr_url_youtube":"","_jinr_pip_youtube":false,"_jinr_time_youtube":"","_jinr_thumb_youtube":"","_jinr_media_youtube":"","_jinr_category_edit":false,"_jinr_category":"","_jinr_title_display":false,"_jinr_snsbutton_display":false,"_jinr_ads_display":false,"_jinr_thumbnail_display":false,"_jinr_profile_display":false,"_jinr_representations_display":false,"_jinr_relatedpost_display":false,"_jinr_sidebar1col_display":false,"_jinr_sidebar2col_display":false,"_jinr_seotitle_display":"","_jinr_description_display":"","_jinr_keyword_display":"","_jinr_hastag_display":"","_jinr_canonical_display":"","_jinr_noindex_display":false,"_jinr_paidpost":false,"_jinr_paidpost_product_id":"","_jinr_headtag_article":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-2256","post","type-post","status-publish","format-standard","hentry","category-1"],"views":"4","_links":{"self":[{"href":"https:\/\/rebron.net\/blog\/wp-json\/wp\/v2\/posts\/2256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rebron.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rebron.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rebron.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rebron.net\/blog\/wp-json\/wp\/v2\/comments?post=2256"}],"version-history":[{"count":1,"href":"https:\/\/rebron.net\/blog\/wp-json\/wp\/v2\/posts\/2256\/revisions"}],"predecessor-version":[{"id":2257,"href":"https:\/\/rebron.net\/blog\/wp-json\/wp\/v2\/posts\/2256\/revisions\/2257"}],"wp:attachment":[{"href":"https:\/\/rebron.net\/blog\/wp-json\/wp\/v2\/media?parent=2256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rebron.net\/blog\/wp-json\/wp\/v2\/categories?post=2256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rebron.net\/blog\/wp-json\/wp\/v2\/tags?post=2256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}