{"id":2943,"date":"2025-05-30T00:00:32","date_gmt":"2025-05-29T16:00:32","guid":{"rendered":"https:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/"},"modified":"2025-05-30T00:00:32","modified_gmt":"2025-05-29T16:00:32","slug":"%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5","status":"publish","type":"post","link":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/","title":{"rendered":"\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5"},"content":{"rendered":"<div class=\"article_content clearfix\" id=\"article_content\">\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/kdoc_html_views-1a98987dfd.css\" rel=\"stylesheet\"\/>\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/ck_htmledit_views-704d5b9767.css\" rel=\"stylesheet\"\/>\n<div class=\"htmledit_views atom-one-dark\" id=\"content_views\">\n<div class=\"blogpost-body cnblogs-markdown\" id=\"cnblogs_post_body\">\n<h3 id=\"\u5199\u5728\u524d\u9762\">\n    \u5199\u5728\u524d\u9762 #<br \/>\n   <\/h3>\n<p>\n    \u672c\u6b21 Space Shooter \u5b9e\u8df5\u901a\u8fc7\u5b9e\u73b0\u4ee5\u4e0b\u529f\u80fd\u8fbe\u5230\u52a0\u6df1\u5bf9 U3D \u6e38\u620f\u5f00\u53d1\u7684\u8ba4\u77e5.\n   <\/p>\n<ul>\n<li>\n     \u952e\u76d8\u63a7\u5236\u98de\u8239\u79fb\u52a8;\n    <\/li>\n<li>\n     \u53d1\u5c04\u5b50\u5f39\u8bbe\u8ba1\u76ee\u6807;\n    <\/li>\n<li>\n     \u968f\u673a\u751f\u6210\u5927\u91cf\u969c\u788d\u7269;\n    <\/li>\n<li>\n     \u8ba1\u5206;\n    <\/li>\n<li>\n     \u5b9e\u73b0\u6e38\u620f\u5bf9\u8c61\u7684\u751f\u547d\u5468\u671f\u7ba1\u7406;\n    <\/li>\n<\/ul>\n<p>\n    \u540c\u65f6\u8fdb\u4e00\u6b65\u7ec3\u4e60\u573a\u666f\u5143\u7d20\u7684\u7f16\u8f91, \u811a\u672c\u6587\u4ef6\u7684\u521b\u5efa\u548c GUI \u7684\u5904\u7406, \u4ee5\u53ca\u97f3\u9891\u6587\u4ef6\u7684\u6dfb\u52a0\u7b49\u65b9\u6cd5.\n   <\/p>\n<p>\n    \u6700\u7ec8\u6548\u679c:\n   <\/p>\n<\/p>\n<h3 id=\"\u5bfc\u5165\u6a21\u578b\u8d34\u56fe\u548c\u6750\u8d28\">\n    1. \u5bfc\u5165\u6a21\u578b,\u8d34\u56fe\u548c\u6750\u8d28 #<br \/>\n   <\/h3>\n<p>\n    \u6b65\u9aa4\u8981\u6ce8\u610f\u7684\u51e0\u70b9 :\n   <\/p>\n<p>\n    \u5bfc\u5165\u7684\u8d44\u6e90\u5305\u4e2d\u6709\u53ef\u4ee5\u6b63\u786e\u8fd0\u884c\u5df2\u505a\u597d\u7684 Done_Main \u573a\u666f, \u5c06\u5176\u5220\u9664, \u521b\u5efa\u4e00\u4e2a\u5168\u65b0\u7684\u7a7a\u573a\u666f\u6587\u4ef6 Main, \u5b9e\u8df5\u590d\u539f Done_Main \u7684\u529f\u80fd;\n   <\/p>\n<p>\n    \u5c06 File&gt;&gt;Build Settings&gt;&gt;Player Settings&gt;&gt;Default Is Full Screen \u53d6\u6d88\u52fe\u9009, \u5bbd\u9ad8\u8bbe\u7f6e\u4e3a 400&#215;600;\n   <\/p>\n<p>\n    \u98de\u8239\u6a21\u578b\u62d6\u81f3 Hierarchy \u547d\u540d\u4e3a Player, Reset Transform \u7ec4\u4ef6;\n   <\/p>\n<p>\n    \u6dfb\u52a0 Rigidbody, \u4e0d\u5e0c\u671b\u98de\u8239\u53d7\u91cd\u529b\u5f71\u54cd\u800c\u4e0b\u5760, \u53d6\u6d88\u52fe\u9009 Use Gravity \u9009\u9879;\n   <\/p>\n<p>\n    \u6dfb\u52a0\u78b0\u649e\u4f53\u7ec4\u4ef6 Mesh Collider, \u8fd9\u662f\u4e00\u4e2a\u7f51\u683c\u78b0\u649e\u4f53, \u4f7f\u98de\u8239\u80fd\u591f\u4e0e\u968f\u673a\u51fa\u73b0\u7684\u969c\u788d\u7269\u53d1\u751f\u78b0\u649e, \u5e76\u5728\u78b0\u649e\u540e\u89e6\u53d1\u9500\u6bc1\u98de\u8239\u548c\u969c\u788d\u7269\u7684\u4e8b\u4ef6, Mesh Collider \u7684 Mesh \u5c5e\u6027\u4e3a\u6a21\u578b vehicle_playerShip \u7684\u7f51\u683c, \u8be5\u7f51\u683c\u6a21\u578b\u5305\u542b\u8bb8\u591a\u7ec6\u5c0f\u7684\u4e09\u89d2\u5f62\u9762\u7247\n   <\/p>\n<\/p>\n<p>\n    \u4e3a\u4e86\u63d0\u9ad8\u6e38\u620f\u7684\u6267\u884c\u6548\u7387, \u98de\u8239\u7f51\u683c\u6a21\u578b\u4e0d\u5e94\u8be5\u8fc7\u4e8e\u590d\u6742, \u4e0d\u5fc5\u8fdb\u884c\u5982\u6b64\u7cbe\u786e\u7684\u78b0\u649e\u68c0\u6d4b, \u5e94\u8be5\u5efa\u7acb\u4e00\u4e2a\u7b80\u5316\u7684\u6a21\u578b, \u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u78b0\u649e\u8ba1\u7b97;\n   <\/p>\n<\/p>\n<p>\n    \u6700\u540e\u8fd8\u8981\u52fe\u9009 Convex \u548c Is Trigger \u9009\u9879\u6846, \u5c06 Mesh Collider \u8bbe\u7f6e\u4e3a\u89e6\u53d1\u5668, \u5982\u56fe;\n   <\/p>\n<\/p>\n<p>\n    \u6dfb\u52a0\u98de\u8239\u5c3e\u90e8\u7684\u706b\u7130\u7c92\u5b50\u6548\u679c, \u8981\u662f Player \u7684\u5b50\u5bf9\u8c61;\n   <\/p>\n<p>\n    \u4f7f\u6444\u50cf\u673a\u6b63\u5bf9\u7740\u98de\u8239, Rotation(90,0,0). \u4f7f\u98de\u8239\u5904\u4e8e Viewport \u89c6\u56fe\u7a97\u53e3\u7684\u4e0b\u534a\u90e8\u5206, Position(0,10,4). \u6444\u50cf\u673a\u4e3a\u6b63\u4ea4\u6295\u5f71;\n   <\/p>\n<p>\n    \u6dfb\u52a0\u80cc\u666f\u56fe\u7247, GameObject&gt;&gt;3D Object&gt;&gt;Quad \u521b\u5efa\u4e00\u4e2a\u5e73\u9762\u547d\u540d\u4e3a Background, \u79fb\u9664 Mesh Collider, \u6b64\u65f6\u5782\u76f4\u4e8e\u98de\u8239;(Quad \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4e3a\u80cc\u5411\u5254\u9664\u6a21\u5f0f, \u56e0\u6b64\u53ef\u80fd\u9700\u8981\u8c03\u6574\u89c6\u89d2\u624d\u80fd\u770b\u5230 Quad \u5e73\u9762) Quad \u7684 Position(90,0,0);\n   <\/p>\n<\/p>\n<p>\n    \u8bbe\u7f6e Background \u7684\u7eb9\u7406\u56fe\u7247 Shader \u6a21\u5f0f\u4e3a Unlit\/Texture;\n   <\/p>\n<p>\n    \u4e3a\u80cc\u666f\u6dfb\u52a0\u7c92\u5b50\u6548\u679c\u7e41\u661f\u70b9\u70b9;\n   <\/p>\n<p>\n    \u81f3\u6b64\u52a8\u56fe\u6548\u679c:\n   <\/p>\n<\/p>\n<h3 id=\"\u7f16\u5199\u811a\u672c\u4ee3\u7801\">\n    2. \u7f16\u5199\u811a\u672c\u4ee3\u7801 #<br \/>\n   <\/h3>\n<h4 id=\"\u63a7\u5236\u98de\u8239\u79fb\u52a8\">\n    2.1 \u63a7\u5236\u98de\u8239\u79fb\u52a8 ##<br \/>\n   <\/h4>\n<p>\n    PlayerController.cs \u5b9e\u73b0\u65b9\u5411\u952e\u63a7\u5236\u98de\u8239\u79fb\u52a8\u7684\u529f\u80fd;\n   <\/p>\n<pre><code class=\"language-csharp\"><code> using UnityEngine;\n using System.Collections;\n\n public class PlayerController : MonoBehaviour\n {\n    \/\/ \u60f3\u5728 Inspector \u89c6\u56fe\u663e\u793a, \u5c31\u9700\u8981\u4e3a Boundary \u7c7b\u6dfb\u52a0\u53ef\u5e8f\u5217\u5316\u7684\u5c5e\u6027 [System.Serializable]\n    [System.Serializable]\n    public class Boundary\n    {\n        \/\/ \u7528\u4e8e\u7ba1\u7406\u98de\u8239\u6d3b\u52a8\u7684\u8fb9\u754c\u503c, XZ \u5e73\u9762\n        public float xMin, xMax, zMin, zMax;\n    }\n\n    \/\/ \u901f\u5ea6\u63a7\u5236\u53d8\u91cf\n    public float speed;\n    public Boundary boundary;\n    \/\/ \u98de\u8239\u503e\u659c\u7cfb\u6570\n    public float tilt = 4.0f;\n\n    void FixedUpdate ()\n    {\n        \/\/ \u5f97\u5230\u6c34\u5e73\u65b9\u5411\u8f93\u5165\n        float moveHorizontal = Input.GetAxis (\"Horizontal\");\n        \/\/ \u5f97\u5230\u5782\u76f4\u65b9\u5411\u8f93\u5165\n        float moveVertical = Input.GetAxis (\"Vertical\");\n        \/\/ \u7528\u4e0a\u9762\u7684\u6c34\u5e73\u65b9\u5411\u548c\u5782\u76f4\u65b9\u5411\u8f93\u5165\u521b\u5efa\u4e00\u4e2a Vector3 \u53d8\u91cf, \u4f5c\u4e3a\u521a\u4f53\u901f\u5ea6, \u662f\u4e00\u4e2a\u77e2\u91cf\n        Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);\n        Rigidbody rb = GetComponent&lt;Rigidbody&gt; ();\n        if (rb != null) {\n            rb.velocity = movement * speed;\n            \/\/ Mathf.Clamp \u9650\u5b9a\u521a\u4f53\u7684\u6d3b\u52a8\u8303\u56f4\n            rb.position = new Vector3 (\n                Mathf.Clamp (rb.position.x, boundary.xMin, boundary.xMax),\n                0.0f,\n                Mathf.Clamp (rb.position.z, boundary.zMin, boundary.zMax)\n            );\n            \/\/ \u98de\u8239\u5de6\u53f3\u79fb\u52a8\u65f6\u6709\u4e00\u5b9a\u7684\u503e\u659c\u6548\u679c,\n            \/\/ \u7ed5 Z \u8f74\u65cb\u8f6c, \u5f80\u5de6\u8fd0\u52a8 X \u8f74\u4e0a\u901f\u5ea6\u4e3a\u8d1f\u503c, \u65cb\u8f6c\u7684\u89d2\u5ea6\u4e3a\u9006\u65f6\u9488\u6b63\u503c, \u6240\u4ee5\u8981\u4e58\u4ee5\u4e00\u4e2a\u8d1f\u7cfb\u6570\n            rb.rotation = Quaternion.Euler (0.0f, 0.0f, rb.velocity.x * -tilt);\n        }\n\n    }\n }<\/code><\/code><\/pre>\n<p>\n    \u81f3\u6b64\u52a8\u56fe\u6548\u679c\u4e3a\n   <\/p>\n<\/p>\n<h4 id=\"\u5b9e\u73b0\u5c04\u51fb\u884c\u4e3a\">\n    2.2 \u5b9e\u73b0\u5c04\u51fb\u884c\u4e3a ##<br \/>\n   <\/h4>\n<p>\n    \u6b65\u9aa4\u9700\u8981\u6ce8\u610f\u7684\u51e0\u70b9\n   <\/p>\n<p>\n    \u65b0\u5efa\u7acb\u4e00\u4e2a\u7a7a\u7684\u6e38\u620f\u5bf9\u8c61 Bolt, \u6dfb\u52a0 Rigidbody \u53d6\u6d88\u52fe\u9009 Use Gravity \u9009\u9879\u6846.\n   <\/p>\n<p>\n    \u4e3a Bolt \u65b0\u5efa\u4e00\u4e2a\u5b50\u5bf9\u8c61 Quad \u547d\u540d\u4e3a VFX, Rotation(90,0,0), \u79fb\u9664 Mesh Collider, \u6dfb\u52a0\u6750\u8d28 fx_bolt_orange.\n   <\/p>\n<p>\n    \u4e3a Bolt \u6dfb\u52a0\u4e00\u4e2a\u80f6\u56ca\u78b0\u649e\u4f53, \u52fe\u9009 Is Trigger \u8bbe\u4e3a\u89e6\u53d1\u5668, \u8bbe\u7f6e Capsule Collider \u7684 Direction \u5c5e\u6027\u503c\u4e3a Z-Axis, \u8bbe\u7f6e\u534a\u5f84\u548c\u9ad8\u5ea6.\n   <\/p>\n<\/p>\n<p>\n    \u4e3a Bolt \u6dfb\u52a0\u4e00\u4e2a\u811a\u672c Mover.cs. \u6b64\u6bb5\u4ee3\u7801\u653e\u5728 Start() \u51fd\u6570\u91cc, \u56e0\u4e3a\u5728\u811a\u672c\u7684\u751f\u547d\u5468\u671f\u4e2d\u53ea\u9700\u8981\u8c03\u7528\u4e00\u6b21, \u4e0d\u9700\u8981\u6bcf\u4e00\u5e27\u90fd\u8c03\u7528.\n   <\/p>\n<p>\n    \u5c06 Bolt \u62d6\u81f3 Prefabs \u6587\u4ef6\u5939\u6210\u4e3a\u9884\u5236\u4f53, \u9884\u5236\u4f53\u505a\u597d\u540e\u5c06\u539f\u672c\u7684 Bolt \u5220\u9664.\n   <\/p>\n<pre><code class=\"language-csharp\"><code>using UnityEngine;\nusing System.Collections;\n\npublic class Mover : MonoBehaviour\n{\n    \/\/ \u5b50\u5f39\u7684\u901f\u5ea6\n    public float speed;\n\n    void Start ()\n    {\n        GetComponent&lt;Rigidbody&gt; ().velocity = transform.forward * speed;\n    }\n\n}\n<\/code><\/code><\/pre>\n<p>\n    \u811a\u672c\u63a7\u5236\u53d1\u5c04\u5b50\u5f39, \u4e3a Player \u65b0\u5efa\u7a7a\u7684\u5b50\u5bf9\u8c61 Shot Spawn, Position(0,0,0.7), \u5728\u6b64\u4f4d\u7f6e\u53d1\u5c04\u5b50\u5f39\n   <\/p>\n<p>\n    \u7ba1\u7406\u5149\u7535\u5b50\u5f39\u7684\u751f\u547d\u5468\u671f, \u5b50\u5f39\u5728\u98de\u51fa\u6709\u6548\u533a\u57df\u4e4b\u540e\u81ea\u884c\u9500\u6bc1, \u4e3a\u6e38\u620f\u533a\u57df\u6dfb\u52a0\u89e6\u53d1\u5668, \u5f53\u7535\u5149\u5b50\u5f39\u98de\u51fa\u533a\u57df\u65f6\u89e6\u53d1\u4e8b\u4ef6, \u5728\u5b9e\u8df5\u54cd\u5e94\u51fd\u6570\u4e2d\u8c03\u7528 Destroy.\n   <\/p>\n<p>\n    \u8bbe\u7f6e Boundary \u4e3a\u89e6\u53d1\u5668, \u7531\u4e8e\u4e0d\u9700\u8981\u5728\u573a\u666f\u4e2d\u663e\u793a Boundary \u5bf9\u8c61, \u79fb\u9664 Mesh Renderer \u7ec4\u4ef6.\n   <\/p>\n<p>\n    \u4e3a Boundary \u6dfb\u52a0\u811a\u672c DestoryByBoundary.cs\n   <\/p>\n<pre><code class=\"language-csharp\"><code>using UnityEngine;\nusing System.Collections;\n\npublic class DestoryByBoundary : MonoBehaviour {\n\n    void OnTriggerExit(Collider other){\n        Destroy (other.gameObject);\n    }\n}\n<\/code><\/code><\/pre>\n<p>\n    \u6ce8\u610f\u7684 :\n   <\/p>\n<ul>\n<li>\n     \u82e5\u8981\u5904\u7406\u6e38\u620f\u5bf9\u8c61\u79fb\u51fa\u89e6\u53d1\u5668\u65f6\u7684\u4e8b\u4ef6, \u5e94\u8be5\u91cd\u8f7d\u4e8b\u4ef6\u51fd\u6570 OnTriggerExit;\n    <\/li>\n<li>\n     OnTriggerExit \u7684\u53c2\u6570 Collider \u8868\u793a\u79fb\u51fa\u89e6\u53d1\u5668\u7684\u5bf9\u8c61, \u8fd9\u91cc\u5c31\u662f\u98de\u51fa\u8fb9\u754c\u7684\u5b50\u5f39\u5bf9\u8c61\u4e0a\u7684\u78b0\u649e\u4f53;\n    <\/li>\n<\/ul>\n<h4 id=\"\u6dfb\u52a0\u5c0f\u884c\u661f\u969c\u788d\u7269\">\n    2.3 \u6dfb\u52a0\u5c0f\u884c\u661f\u969c\u788d\u7269 ##<br \/>\n   <\/h4>\n<p>\n    \u8981\u6ce8\u610f\u7684\u51e0\u70b9\n   <\/p>\n<p>\n    \u5c0f\u884c\u661f\u968f\u673a\u751f\u6210, \u968f\u673a\u7684\u89d2\u5ea6\u65cb\u8f6c;\n   <\/p>\n<p>\n    \u5c04\u51fb\u51fb\u4e2d\u5c0f\u884c\u661f\u65f6, \u5c0f\u884c\u661f\u7206\u70b8\u5e76\u9500\u6bc1;\n   <\/p>\n<p>\n    \u98de\u8239\u78b0\u4e0a\u5c0f\u884c\u661f, \u98de\u8239\u7206\u70b8, \u6e38\u620f\u7ed3\u675f;\n   <\/p>\n<p>\n    \u65b0\u5efa\u7a7a\u5bf9\u8c61 Asteroid Position(0,0,9) Rigidbody \u53d6\u6d88 Use Gravity \u6dfb\u52a0 Capsule Collider \u52fe\u9009 Is Trigger.\n   <\/p>\n<p>\n    \u6a21\u578b prop_asteroid_01 \u6dfb\u52a0\u4e3a Asteroid \u7684\u5b50\u5bf9\u8c61.\n   <\/p>\n<p>\n    Capsule Collider \u5c5e\u6027 Radius = 0.5, Height = 1.6, Direction \u4e3a Z-Axis\n   <\/p>\n<p>\n    \u4e3a Asteroid \u6dfb\u52a0\u811a\u672c RandomRotator.cs;\n   <\/p>\n<pre><code class=\"language-csharp\"><code>using UnityEngine;\nusing System.Collections;\n\npublic class RandomRotator : MonoBehaviour\n{\n    \/\/ tumble \u662f\u65cb\u8f6c\u7cfb\u6570\n    public float tumble;\n    void Start ()\n    {\n        \/\/ angularVelocity \u8868\u793a\u521a\u4f53\u7684\u89d2\u901f\u5ea6;  insideUnitSphere \u8868\u793a\u5355\u4f4d\u957f\u5ea6\u534a\u5f84\u7403\u4f53\u5185\u7684\u4e00\u4e2a\u968f\u673a\u70b9(\u5411\u91cf)\n        \/\/ \u4e58\u79ef\u7ed3\u679c\u63cf\u8ff0\u4e86\u5728\u534a\u5f84\u957f\u5ea6\u4e3a tumble \u7684\u7403\u4f53\u4e2d\u7684\u968f\u673a\u70b9\n        \/\/ \u7531\u6b64\u5c31\u53ef\u4ee5\u5b9e\u73b0\u521a\u4f53\u4ee5\u4e00\u4e2a\u968f\u673a\u7684\u89d2\u901f\u5ea6\u65cb\u8f6c\n        GetComponent&lt;Rigidbody&gt; ().angularVelocity = Random.insideUnitSphere * tumble;\n    }\n}\n<\/code><\/code><\/pre>\n<p>\n    \u8bbe\u5b9a Asteroid \u5bf9\u8c61\u7684\u89d2\u963b\u529b\u4e3a0;\n   <\/p>\n<p>\n    \u6dfb\u52a0\u63a7\u5236\u5c04\u51fb\u5c0f\u884c\u661f\u7684\u529f\u80fd, \u4e3a\u5c0f\u884c\u661f Asteroid \u6dfb\u52a0\u4e00\u4e2a\u811a\u672c\u6765\u63a7\u5236\u78b0\u649e\u4e8b\u4ef6 DestroyByContact.cs\n   <\/p>\n<pre><code class=\"language-csharp\"><code>using UnityEngine;\nusing System.Collections;\n\npublic class DestoryByContact : MonoBehaviour\n{\n    \/\/ \u5c0f\u884c\u661f\u7206\u70b8\u65f6\u7684\u7c92\u5b50\u5bf9\u8c61\n    public GameObject explosion;\n    \/\/ \u98de\u8239\u4e0e\u5c0f\u884c\u661f\u78b0\u649e\u98de\u8239\u7206\u70b8\u7684\u7c92\u5b50\u5bf9\u8c61\n    public GameObject playerExplosion;\n\n    void OnTriggerEnter (Collider other)\n    {\n\n        if (other.tag == \"Boundary\" || other.tag == \"Enemy\") {\n            return;\n        }\n        if (explosion != null) {\n            \/\/ \u5728\u5c0f\u884c\u661f\u9500\u6bc1\u7684\u4f4d\u7f6e\u751f\u6210\u4e00\u4e2a\u7206\u70b8\u6548\u679c, explosion \u662f\u5c0f\u884c\u661f\u7684\u4f4d\u7f6e\n            Instantiate (explosion, transform.position, transform.rotation);  \n        }\n\n        if (other.tag == \"Player\") {\n            \/\/ \u5728\u73a9\u5bb6\u98de\u673a\u9500\u6bc1\u7684\u4f4d\u7f6e\u751f\u6210\u4e00\u4e2a\u7206\u70b8\u6548\u679c, playerExplosion \u662f\u98de\u8239\u7684\u4f4d\u7f6e\n            Instantiate (playerExplosion, other.transform.position, other.transform.rotation);  \n        }\n        \/\/ \u9500\u6bc1\u8ddf\u5c0f\u884c\u661f\u78b0\u649e\u7684\u7269\u4f53\n        Destroy (other.gameObject);  \n        \/\/ \u9500\u6bc1\u5c0f\u884c\u661f\n        Destroy (this.gameObject);   \n    }\n}\n<\/code><\/code><\/pre>\n<p>\n    Boundary \u7684 Tag \u8bbe\u4e3a Boundary; Player \u7684 Tag \u8bbe\u4e3a Player\n   <\/p>\n<p>\n    \u81f3\u6b64\u52a8\u56fe\u6548\u679c\u4e3a\n   <\/p>\n<\/p>\n<h4 id=\"\u63a7\u5236\u5c0f\u884c\u661f\u8fd0\u52a8\u548c\u968f\u673a\u751f\u6210\">\n    2.4 \u63a7\u5236\u5c0f\u884c\u661f\u8fd0\u52a8\u548c\u968f\u673a\u751f\u6210 ##<br \/>\n   <\/h4>\n<p>\n    \u8ba9\u5c0f\u884c\u661f\u4ee5\u4e00\u5b9a\u7684\u901f\u5ea6\u98de\u5411\u98de\u8239, \u4e3a Asteroid \u6dfb\u52a0\u811a\u672c Mover.cs \u8bbe\u7f6e speed \u5c5e\u6027\u503c\u4e3a -5; \u901f\u5ea6\u8bbe\u4e3a\u8d1f\u503c, \u56e0\u4e3a\u5c0f\u884c\u661f\u4e0e\u5b50\u5f39\u7684\u8fd0\u52a8\u65b9\u5411\u76f8\u53cd\n   <\/p>\n<p>\n    \u9700\u8981\u5148\u5236\u4f5c Asteroid \u9884\u5236\u4f53, \u521b\u5efa Project&gt;&gt;GameController \u7a7a\u6e38\u620f\u5bf9\u8c61, Tag \u4e3a GameController, \u5e76\u4e3a\u4e4b\u521b\u5efa\u811a\u672c GameController.cs\n   <\/p>\n<pre><code class=\"language-csharp\"><code>using UnityEngine;\nusing System.Collections;\n\npublic class GameController : MonoBehaviour\n{\n    \/\/ \u5c0f\u884c\u661f\u6570\u7ec4\n    public GameObject[] hazards;\n    \/\/ \u968f\u673a\u751f\u6210\u5c0f\u884c\u661f\u7684\u4f4d\u7f6e\n    public Vector3 spawnValues;\n    \/\/ \u6bcf\u4e00\u6ce2\u5c0f\u884c\u661f\u751f\u6210\u7684\u6570\u91cf\n    public int hazardCount;\n    \/\/ \u6bcf\u6b21\u751f\u6210\u5c0f\u884c\u661f\u5bf9\u8c61\u540e\u5ef6\u8fdf\u7684\u65f6\u95f4, \u5355\u4f4d\u79d2\n    public float spawnWait;\n    \/\/ \u8868\u793a\u5f00\u59cb\u751f\u6210\u5c0f\u884c\u661f\u5bf9\u8c61\u524d\u7b49\u5f85\u7684\u65f6\u95f4\n    public float startWait;\n    \/\/ \u8868\u793a\u4e24\u6279\u5c0f\u884c\u661f\u9635\u5217\u95f4\u7684\u65f6\u95f4\u95f4\u9694\n    public float waveWait;\n\n    void Start ()\n    {\n        StartCoroutine (SpawnWave ());\n    }\n\n    \/\/ \u4e00\u6ce2\u4e00\u6ce2\u5730\u751f\u6210\u5c0f\u884c\u661f\n    IEnumerator SpawnWave ()\n    {\n        yield return new WaitForSeconds (startWait);\n\n        while (true) {\n            for (int i = 0; i &lt; hazardCount; i++) {\n                GameObject hazard = hazards [Random.Range (0, hazards.Length)];\n                Vector3 spawnPosition = new Vector3 (Random.Range (-spawnValues.x, spawnValues.x), spawnValues.y, spawnValues.z);\n                Instantiate (hazard, spawnPosition, Quaternion.identity);  \/\/ \u751f\u6210\u968f\u673a\u7684\u5c0f\u884c\u661f\n                yield return new WaitForSeconds (spawnWait);\n            }\n\n            yield return new WaitForSeconds (waveWait);\n        }\n    }\n}\n<\/code><\/code><\/pre>\n<p>\n    \u6709\u4e00\u4e2a\u8981\u6ce8\u610f\u7684\u5730\u65b9, \u5bf9\u6570\u7ec4 Hazards \u7684\u5185\u5bb9\u4e0d\u80fd\u62d6\u6210 model ,\u8981\u662f\u9884\u5236\u4f53, \u5426\u5219\u751f\u6210\u7684\u5c0f\u884c\u661f\u65e0\u6548\u5bfc\u81f4\u4e0d\u4f1a\u8fd0\u52a8, \u5982\u56fe\n   <\/p>\n<\/p>\n<p>\n    \u9632\u6b62\u5c0f\u884c\u661f\u6570\u91cf\u592a\u591a, \u8ddd\u79bb\u8fd1\u4ee5\u81f4\u5c0f\u884c\u661f\u4e4b\u95f4\u76f8\u4e92\u78b0\u649e\u9500\u6bc1, \u9700\u8981\u4f7f\u7528 \u534f\u7a0b\u7c7b WaitForSeconds\n   <\/p>\n<p>\n    \u8ba9\u7206\u70b8\u540e\u7684\u7c92\u5b50\u5b9e\u4f8b explosion_asteroid \u81ea\u52a8\u9500\u6bc1, \u5efa\u7acb\u811a\u672c DestroyByTime.cs \u7ed1\u5b9a\u5230 explosion_asteroid \u548c explosion_player \u4e0a\n   <\/p>\n<pre><code class=\"language-csharp\"><code>using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\npublic class DestroyByTime : MonoBehaviour\n{\n\n    public float lifeTime = 2.0f;\n\n    void Start ()\n    {\n        Destroy (gameObject, lifeTime);\n    }\n}\n<\/code><\/code><\/pre>\n<h3 id=\"\u6dfb\u52a0\u97f3\u9891\">\n    3. \u6dfb\u52a0\u97f3\u9891 #<br \/>\n   <\/h3>\n<p>\n    \u5c06\u97f3\u9891\u6587\u4ef6\u6dfb\u52a0\u81f3\u9884\u5236\u4f53<br \/>\n    <br \/>\n    \u662f\u5426\u52fe\u9009 Play On Awake \u8868\u660e\u97f3\u9891\u6587\u4ef6\u5728\u5524\u9192\u65f6\u81ea\u52a8\u64ad\u653e;\n   <\/p>\n<h3 id=\"\u6dfb\u52a0\u79ef\u5206\u6587\u672c\">\n    4. \u6dfb\u52a0\u79ef\u5206\u6587\u672c #<br \/>\n   <\/h3>\n<p>\n    \u65b0\u7248 Text \u7ec4\u4ef6\u7684\u4f7f\u7528\u65b9\u6cd5, GameObject&gt;&gt;UI&gt;&gt;Text \u751f\u6210 Canvas&gt;&gt;Text \u548c EventSystem. \u8c03\u6574 Text \u4f4d\u7f6e, Anchor Presets \u9009\u62e9 top-left.\n   <\/p>\n<p>\n    \u79ef\u5206\u529f\u80fd\u5305\u62ec\u4ee5\u4e0b\u4f5c\u7528 :\n   <\/p>\n<p>\n    \u98de\u8239\u53d1\u5c04\u5b50\u5f39\u51fb\u4e2d\u5c0f\u884c\u661f\u540e\u5206\u503c\u589e\u52a0;<br \/>\n    <br \/>\n    \u5206\u503c\u589e\u52a0\u540e\u66f4\u65b0 Text \u7ec4\u4ef6\u7684\u663e\u793a;\n   <\/p>\n<p>\n    \u5728 GameController.cs \u811a\u672c\u6dfb\u52a0\u53d8\u91cf scoreText \u548c score\n   <\/p>\n<pre><code>\/\/ \u66f4\u65b0\u8ba1\u5206 Text \u7684\u7ec4\u4ef6\npublic Text scoreText;\n\/\/ \u4fdd\u5b58\u5f53\u524d\u5206\u503c\nprivate int score;\n\nvoid Start ()\n{\n  score = 0;\n  UpdateScore ();\n  StartCoroutine (SpawnWave ());\n}<\/code><\/pre>\n<pre><code>void UpdateScore ()\n{\n  scoreText.text = \"Get Score : \" + score;\n}\n\npublic void AddScore (int newScoreValue)\n{\n  score += newScoreValue;\n  UpdateScore ();\n}<\/code><\/pre>\n<p>\n    \u811a\u672c DestoryByContact.cs \u53ef\u4ee5\u8c03\u7528 AddScore \u51fd\u6570.\n   <\/p>\n<pre><code>\/\/ \u8868\u793a\u5c0f\u884c\u661f\u88ab\u51fb\u4e2d\u540e\u73a9\u5bb6\u5206\u503c\u589e\u52a0\u7684\u6570\u91cf\npublic int scoreValue;\n\/\/ \u8868\u793a\u5728\u6e38\u620f\u5bf9\u8c61 GameController \u4e0a\u7ed1\u5b9a\u7684\u811a\u672c GameController.cs\nprivate GameController gameController;\n\nvoid Start ()\n{\n  GameObject go = GameObject.FindWithTag (\"GameController\");\n  if (go != null) {\n    gameController = go.GetComponent&lt;GameController&gt; ();\n  } else {\n    Debug.Log (\"Cannot Find a tag of GameController\");\n  }\n  if (gameController == null) {\n    Debug.Log (\"Cannot Find the Script of GameController.cs\");\n  }\n}<\/code><\/pre>\n<pre><code>if (explosion != null) {\n            \/\/ \u5728\u5c0f\u884c\u661f\u9500\u6bc1\u7684\u4f4d\u7f6e\u751f\u6210\u4e00\u4e2a\u7206\u70b8\u6548\u679c, explosion \u662f\u5c0f\u884c\u661f\u7684\u4f4d\u7f6e\n            Instantiate (explosion, transform.position, transform.rotation);  \n            gameController.AddScore (scoreValue);\n        }<\/code><\/pre>\n<h3 id=\"\u6e38\u620f\u7ed3\u675f\u4e0e\u91cd\u65b0\u5f00\u59cb\">\n    5. \u6e38\u620f\u7ed3\u675f\u4e0e\u91cd\u65b0\u5f00\u59cb #<br \/>\n   <\/h3>\n<p>\n    \u6dfb\u52a0\u6e38\u620f\u7ed3\u675f\u7684 Text \u7ec4\u4ef6\n   <\/p>\n<p>\n    \u6dfb\u52a0\u6e38\u620f\u7ed3\u675f\u7684\u811a\u672c\n   <\/p>\n<p>\n    GameController \u6dfb\u52a0\u53d8\u91cf\n   <\/p>\n<pre><code>\/\/ \u66f4\u65b0 Text \u7ec4\u4ef6\u7684\u663e\u793a\npublic Text gameOverText;\n\/\/ \u6e38\u620f\u662f\u5426\u7ed3\u675f\nprivate bool gameOver;<\/code><\/pre>\n<pre><code>public void GameOver ()\n{\n  gameOver = true;\n  gameOverText.text = \"\u6e38\u620f\u7ed3\u675f\";\n}<\/code><\/pre>\n<pre><code>while (true) {\n            if (gameOver) {\n                break;\n            }\n  \/\/ ... ...\n}<\/code><\/pre>\n<p>\n    \u5728 DestroyByContact.cs \u811a\u672c\u52a0\u5165\u5bf9 GameOver() \u51fd\u6570\u7684\u8c03\u7528.\n   <\/p>\n<pre><code>if (other.tag == \"Player\") {\n    \/\/ \u5728\u73a9\u5bb6\u98de\u673a\u9500\u6bc1\u7684\u4f4d\u7f6e\u751f\u6210\u4e00\u4e2a\u7206\u70b8\u6548\u679c, playerExplosion \u662f\u98de\u8239\u7684\u4f4d\u7f6e\n    Instantiate (playerExplosion, other.transform.position, other.transform.rotation);  \n    gameController.GameOver ();\n}<\/code><\/pre>\n<p>\n    \u6dfb\u52a0\u91cd\u65b0\u5f00\u59cb\u7684 Text \u7ec4\u4ef6, \u6309[R]\u952e\u91cd\u65b0\u5f00\u59cb.\n   <\/p>\n<pre><code>\/\/ \u66f4\u65b0\u6dfb\u52a0\u7684 Text \u7ec4\u4ef6\npublic Text restartText;\n\/\/ \u662f\u5426\u91cd\u65b0\u5f00\u59cb\u6e38\u620f, \u53ea\u6709\u6e38\u620f\u7ed3\u675f\u65f6\u91cd\u65b0\u5f00\u59cb\nprivate bool restart;\n\nvoid Start ()\n{\n  score = 0;\n  UpdateScore ();\n  gameOverText.text = \"\";\n  gameOver = false;\n  restartText.text = \"\";\n  restart = false;\n  StartCoroutine (SpawnWave ());\n}\n\nvoid Update ()\n{\n  if (restart) {\n    if (Input.GetKeyDown (KeyCode.R)) {\n      Application.LoadLevel (Application.loadedLevel);\n    }\n  }\n}<\/code><\/pre>\n<p>\n    Application.LoadLevel(Application.loadedLevel) \u662f Unity \u4e2d\u91cd\u65b0\u52a0\u8f7d\u573a\u666f\u7684\u5e38\u7528\u65b9\u6cd5.\n   <\/p>\n<p>\n    \u4e09\u4e2a\u6587\u672c\n   <\/p>\n<\/p>\n<p>\n    \u81f3\u6b64\u5b8c\u6bd5.\n   <\/p>\n<\/p>\n<p>\n    End.\n   <\/p>\n<p>\n    \u5b66\u4e60\u81ea Book\u300aUnity \u5b98\u65b9\u6848\u4f8b\u7cbe\u8bb2\u300b\n   <\/p>\n<p>\n    \u5bfc\u51fa\u5305 \u2192<br \/>\n    <a href=\"https:\/\/github.com\/Isayes\/Unity-Practice\/tree\/master\/%E5%AF%B9%20Unity%20%E5%A4%AA%E7%A9%BA%E5%B0%84%E5%87%BB%E6%B8%B8%E6%88%8F%E7%9A%84%E5%AE%9E%E8%B7%B5\"><br \/>\n     GitHub<br \/>\n    <\/a>\n   <\/p>\n<\/p><\/div>\n<p>\n   \u8f6c\u8f7d\u4e8e:https:\/\/www.cnblogs.com\/isayes\/p\/6567043.html\n  <\/p>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u5199\u5728\u524d\u9762 # \u672c\u6b21 Space Shooter \u5b9e\u8df5\u901a\u8fc7\u5b9e\u73b0\u4ee5\u4e0b\u529f\u80fd\u8fbe\u5230\u52a0\u6df1\u5bf9 U3D \u6e38\u620f\u5f00\u53d1\u7684\u8ba4\u77e5. \u952e\u76d8 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-2943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-23"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/\u5bf9-unity-\u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"og:description\" content=\"\u5199\u5728\u524d\u9762 # \u672c\u6b21 Space Shooter \u5b9e\u8df5\u901a\u8fc7\u5b9e\u73b0\u4ee5\u4e0b\u529f\u80fd\u8fbe\u5230\u52a0\u6df1\u5bf9 U3D \u6e38\u620f\u5f00\u53d1\u7684\u8ba4\u77e5. \u952e\u76d8 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/\u5bf9-unity-\u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5\/\" \/>\n<meta property=\"og:site_name\" content=\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-29T16:00:32+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"260\" \/>\n\t<meta property=\"og:image:height\" content=\"180\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin@wunen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin@wunen\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/\"},\"author\":{\"name\":\"admin@wunen\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\"},\"headline\":\"\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5\",\"datePublished\":\"2025-05-29T16:00:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/\"},\"wordCount\":220,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"articleSection\":[\"\u5c04\u51fb\u6e38\u620f\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/\",\"url\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/\",\"name\":\"\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"isPartOf\":{\"@id\":\"https:\/\/www.wunen.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"datePublished\":\"2025-05-29T16:00:32+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#primaryimage\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"width\":260,\"height\":180},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wunen.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wunen.com\/#website\",\"url\":\"https:\/\/www.wunen.com\/\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"description\":\"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9\",\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wunen.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.wunen.com\/#organization\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"url\":\"https:\/\/www.wunen.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"width\":1024,\"height\":1024,\"caption\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\"},\"image\":{\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\",\"name\":\"admin@wunen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"caption\":\"admin@wunen\"},\"sameAs\":[\"http:\/\/www.wunen.com\"],\"url\":\"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/\u5bf9-unity-\u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","og_description":"\u5199\u5728\u524d\u9762 # \u672c\u6b21 Space Shooter \u5b9e\u8df5\u901a\u8fc7\u5b9e\u73b0\u4ee5\u4e0b\u529f\u80fd\u8fbe\u5230\u52a0\u6df1\u5bf9 U3D \u6e38\u620f\u5f00\u53d1\u7684\u8ba4\u77e5. \u952e\u76d8 [&hellip;]","og_url":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/\u5bf9-unity-\u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5\/","og_site_name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","article_published_time":"2025-05-29T16:00:32+00:00","og_image":[{"width":260,"height":180,"url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","type":"image\/jpeg"}],"author":"admin@wunen","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin@wunen","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#article","isPartOf":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/"},"author":{"name":"admin@wunen","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8"},"headline":"\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5","datePublished":"2025-05-29T16:00:32+00:00","mainEntityOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/"},"wordCount":220,"commentCount":0,"publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","articleSection":["\u5c04\u51fb\u6e38\u620f"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/","url":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/","name":"\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","isPartOf":{"@id":"https:\/\/www.wunen.com\/#website"},"primaryImageOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#primaryimage"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","datePublished":"2025-05-29T16:00:32+00:00","breadcrumb":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#primaryimage","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","width":260,"height":180},{"@type":"BreadcrumbList","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/30\/%e5%af%b9-unity-%e5%a4%aa%e7%a9%ba%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84%e5%ae%9e%e8%b7%b5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wunen.com\/"},{"@type":"ListItem","position":2,"name":"\u5bf9 Unity \u592a\u7a7a\u5c04\u51fb\u6e38\u620f\u7684\u5b9e\u8df5"}]},{"@type":"WebSite","@id":"https:\/\/www.wunen.com\/#website","url":"https:\/\/www.wunen.com\/","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","description":"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9","publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wunen.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/www.wunen.com\/#organization","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","url":"https:\/\/www.wunen.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","width":1024,"height":1024,"caption":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51"},"image":{"@id":"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8","name":"admin@wunen","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","caption":"admin@wunen"},"sameAs":["http:\/\/www.wunen.com"],"url":"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/"}]}},"_links":{"self":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/2943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/comments?post=2943"}],"version-history":[{"count":0,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/2943\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media\/215"}],"wp:attachment":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media?parent=2943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/categories?post=2943"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/tags?post=2943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}