{"id":2054,"date":"2020-09-16T22:16:20","date_gmt":"2020-09-16T14:16:20","guid":{"rendered":"http:\/\/www.u3d8.com\/?p=2054"},"modified":"2020-09-21T14:17:38","modified_gmt":"2020-09-21T06:17:38","slug":"unity%e5%bc%b9%e9%81%93%e8%bd%a8%e8%bf%b9","status":"publish","type":"post","link":"http:\/\/www.u3d8.com\/?p=2054","title":{"rendered":"Unity\u5f39\u9053\u8f68\u8ff9"},"content":{"rendered":"\n<p>\u6548\u679c1\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img title=\"Unity\u5f39\u9053\u8f68\u8ff9 - \u7b2c1\u5f20  | u3d8\u6280\u672f\u5206\u4eab\" alt=\"Unity\u5f39\u9053\u8f68\u8ff9 - \u7b2c1\u5f20  | u3d8\u6280\u672f\u5206\u4eab\" loading=\"lazy\" width=\"343\" height=\"439\" src=\"http:\/\/www.u3d8.com\/wp-content\/uploads\/2020\/09\/11.gif\" alt=\"\" class=\"wp-image-2055\"\/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\npublic class Bullet_Track1 : MonoBehaviour\n{\n    private Transform target;\n    public float speed = 30;    \/\/\u98de\u884c\u901f\u5ea6\n    public float rotationAngle = 30;    \/\/\u65cb\u8f6c\u89d2\u5ea6\n\n    \/\/ Start is called before the first frame update\n    void Start()\n    {\n\n    }\n\n    \/\/ Update is called once per frame\n    void Update()\n    {\n        if (target == null)\n            return;\n        Track();\n    }\n\n    public void SetTarget(Transform target)\n    {\n        this.target = target;\n    }\n\n    private void Track()\n    {\n        Vector3 direction = target.position - transform.position;\n        float angle = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg;\n        transform.eulerAngles = new Vector3(0, angle, 0);\n        transform.rotation = transform.rotation * Quaternion.Euler(0, rotationAngle, 0);\n        transform.Translate(Vector3.forward * speed * Time.deltaTime);\n\n        if (Vector3.Distance(transform.position, target.position) &lt;= 0.5f)\n        {\n            Destroy(gameObject);\n        }\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u6548\u679c2\uff1a<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large is-resized\"><img title=\"Unity\u5f39\u9053\u8f68\u8ff9 - \u7b2c2\u5f20  | u3d8\u6280\u672f\u5206\u4eab\" alt=\"Unity\u5f39\u9053\u8f68\u8ff9 - \u7b2c2\u5f20  | u3d8\u6280\u672f\u5206\u4eab\" loading=\"lazy\" src=\"http:\/\/www.u3d8.com\/wp-content\/uploads\/2020\/09\/21.gif\" alt=\"\" class=\"wp-image-2056\" width=\"270\" height=\"346\"\/><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img title=\"Unity\u5f39\u9053\u8f68\u8ff9 - \u7b2c3\u5f20  | u3d8\u6280\u672f\u5206\u4eab\" alt=\"Unity\u5f39\u9053\u8f68\u8ff9 - \u7b2c3\u5f20  | u3d8\u6280\u672f\u5206\u4eab\" loading=\"lazy\" src=\"http:\/\/www.u3d8.com\/wp-content\/uploads\/2020\/09\/22.gif\" alt=\"\" class=\"wp-image-2057\" width=\"270\" height=\"346\"\/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\npublic class Bullet_Track2 : MonoBehaviour\n{\n    private Transform target;\n    public float speed = 30;    \/\/\u98de\u884c\u901f\u5ea6\n    public float startAngle = 30;   \/\/\u521d\u59cb\u89d2\u5ea6\n    public float radian = 1;    \/\/\u5f27\u5ea6\n\n    \/\/ Start is called before the first frame update\n    void Start()\n    {\n        transform.eulerAngles = new Vector3(0, startAngle, 0);\n    }\n\n    \/\/ Update is called once per frame\n    void Update()\n    {\n        if (target == null)\n            return;\n        Track();\n    }\n\n    public void SetTarget(Transform target)\n    {\n        this.target = target;\n    }\n\n    private void Track()\n    {\n        transform.forward = Vector3.Slerp(transform.forward, target.position - transform.position, radian \/ Vector3.Distance(transform.position, target.position));\n        transform.position += transform.forward * speed * Time.deltaTime;\n\n        if (Vector3.Distance(transform.position, target.position) &lt;= 0.5f)\n        {\n            Destroy(gameObject);\n        }\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>GitHub\u4e0b\u8f7d\u5730\u5740\uff1a<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/654306663\/BulletTrajectory.git\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/654306663\/BulletTrajectory.git<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6548\u679c1\uff1a \u6548\u679c2\uff1a GitHub\u4e0b\u8f7d\u5730\u5740\uff1a https:\/\/github.com &hellip; <a href=\"http:\/\/www.u3d8.com\/?p=2054\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,23],"tags":[],"_links":{"self":[{"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/posts\/2054"}],"collection":[{"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2054"}],"version-history":[{"count":4,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/posts\/2054\/revisions"}],"predecessor-version":[{"id":2094,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=\/wp\/v2\/posts\/2054\/revisions\/2094"}],"wp:attachment":[{"href":"http:\/\/www.u3d8.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2054"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.u3d8.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}