{"id":11301,"date":"2023-10-26T11:44:27","date_gmt":"2023-10-26T02:44:27","guid":{"rendered":"http:\/\/www.tyosuke20xx.com\/blog\/?p=11301"},"modified":"2023-10-26T11:44:29","modified_gmt":"2023-10-26T02:44:29","slug":"%e3%83%9d%e3%82%b1%e3%83%a2%e3%83%b3","status":"publish","type":"post","link":"http:\/\/www.tyosuke20xx.com\/blog\/?p=11301","title":{"rendered":"\u30dd\u30b1\u30e2\u30f3"},"content":{"rendered":"\n<p>using System.Collections;<br>using System.Collections.Generic;<br>using UnityEngine;<\/p>\n\n\n\n<p>public class PlayerController : MonoBehaviour<br>{<br>public float moveSpeed;<br>public LayerMask solidObjectsLayer;<br>public LayerMask grassLayer;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>private bool isMoving;\nprivate Vector2 input;\n\nprivate Animator animator;\n\nprivate void Awake()\n{\n    animator = GetComponent&lt;Animator>();\n}\nprivate void Update()\n{\n       if (!isMoving)\n        {\n        input.x = Input.GetAxisRaw(\"Horizontal\");\n        input.y = Input.GetAxisRaw(\"Vertical\");\n\n        \/\/remove diagonal movement\n        if (input.x != 0) input.y = 0;\n\n        if(input != Vector2.zero)\n        {\n            animator.SetFloat(\"moveX\", input.x);\n            animator.SetFloat(\"moveY\", input.y);\n            var targetPos = transform.position;\n            targetPos.x += input.x;\n            targetPos.y += input.y;\n\n            if(IsWalkable(targetPos))\n            StartCoroutine(Move(targetPos));\n        }\n    }\n\n    animator.SetBool(\"isMoving\", isMoving);\n}\nIEnumerator Move(Vector3 targetPos)\n{\n    isMoving = true;\n\n    while ((targetPos - transform.position).sqrMagnitude > Mathf.Epsilon)\n    {\n        transform.position = Vector3.MoveTowards(transform.position, targetPos, moveSpeed * Time.deltaTime);\n        yield return null;\n    }\n    transform.position = targetPos; \/\/ \u76ee\u6a19\u4f4d\u7f6e\u306b\u5408\u308f\u305b\u3066\u6700\u7d42\u4f4d\u7f6e\u3092\u8a2d\u5b9a\n\n    isMoving = false;\n\n    CheckForEncounters();\n}\n\nprivate bool IsWalkable(Vector3 tagetPos)\n{\n    if(Physics2D.OverlapCircle(tagetPos, 0.2f, solidObjectsLayer) != null)\n    {\n        return false;\n    }\n\n    return true;\n}\n\nprivate void CheckForEncounters()\n{\n    if(Physics2D.OverlapCircle(transform.position, 0.2f, grassLayer) != null)\n    {\n        if(Random.Range(1, 101) &lt;= 10)\n        {\n            Debug.Log(\"\u91ce\u751f\u306e\u30dd\u30b1\u30e2\u30f3\u306b\u906d\u9047\u3057\u305f\");\n        }\n   \n}<\/code><\/pre>\n\n\n\n<p>}<\/p>\n\n\n\n<p>PlayerController.cs<\/p>\n\n\n\n<p>using System.Collections;<br>using System.Collections.Generic;<br>using UnityEngine;<\/p>\n\n\n\n<p>[CreateAssetMenu(fileName = &#8220;\u30dd\u30b1\u30e2\u30f3&#8221;, menuName = &#8220;\u30dd\u30b1\u30e2\u30f3\/\u65b0\u3057\u3044\u30dd\u30b1\u30e2\u30f3\u3092\u4f5c\u6210\u3059\u308b&#8221;)]<br>public class PokemonBase : ScriptableObject<br>{<br>[SerializeField] string name;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;TextArea]\n&#91;SerializeField] string description;\n\n&#91;SerializeField] Sprite frontSprite;\n&#91;SerializeField] Sprite backSprite;\n\n&#91;SerializeField] PokemonType type1;\n&#91;SerializeField] PokemonType type2;\n\n\/\/Base Stats\n&#91;SerializeField] int maxHp;\n&#91;SerializeField] int attack;\n&#91;SerializeField] int defense;\n&#91;SerializeField] int spAttack;\n&#91;SerializeField] int spDefense;\n&#91;SerializeField] int speed;<\/code><\/pre>\n\n\n\n<p>}<\/p>\n\n\n\n<p>public enum PokemonType<br>{<br>None,<br>Normal,<br>Fire,<br>Water,<br>Electric,<br>Grass,<br>Ice,<br>Fighting,<br>Poison,<br>Ground,<br>Flying,<br>Psychic,<br>Bug,<br>Rock,<br>Ghost,<br>Dragon<br>}<\/p>\n\n\n\n<p>PokemonBase<\/p>\n","protected":false},"excerpt":{"rendered":"<p>using System.Collections;using System.Collections.Generic;using UnityEngine; public class PlayerController : M &hellip; <a href=\"http:\/\/www.tyosuke20xx.com\/blog\/?p=11301\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;\u30dd\u30b1\u30e2\u30f3&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[33,4,29,44],"tags":[35,3,14],"class_list":["post-11301","post","type-post","status-publish","format-standard","hentry","category-c","category-programming","category-unity","category-44","tag-c","tag-programming","tag-unity"],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11301"}],"version-history":[{"count":1,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11301\/revisions"}],"predecessor-version":[{"id":11302,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11301\/revisions\/11302"}],"wp:attachment":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11301"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}