本文へスキップ
Unity ट्यूटोरियल

Unity में clicked position तक 3D object move करना

ScreenPointToRay, Physics.Raycast और MoveTowards से beginner-friendly click-to-move controller बनाएं.

公開日: 2026-05-05#Unity#Raycast#3D#Movement
+
*
+
Coco, गाइड किरदार・喜ぶ
Coco
गेम डेवलपमेंट सीखने की गाइड
यह लेसन जापानी पेज जैसी निर्देशित स्क्रीन構成 रखता है: शुरुआत, किरदारों की बातचीत, स्टेप कार्ड, कोड और व्यावहारिक समापन.
+
*
+
Hajime, सीखने वाला किरदार・混乱
Hajime
शुरुआती गेम इंजन सीखने वाला
मैं समझना चाहता हूं कि पहले क्या बनाना है, क्या जांचना है, और कैसे पता चले कि मैंने सच में सीख लिया.
Coco, गाइड किरदार
यह tutorial Unity का एक बहुत उपयोगी beginner pattern समझाता है: ground पर click पढ़ना और character को उस point की ओर साफ, controllable तरीके से move करना.
Hajime, सीखने वाला किरदार
लक्ष्य, इनपुट और सफलता की शर्त जांचें
Coco, गाइड किरदार
जब आपको पता होता है कि स्क्रीन पर क्या दिखना चाहिए और कौन सा नतीजा पूरा माना जाएगा, तो लेसन बहुत आसानी से आगे बढ़ता है.

लेसन का सारांश

पहले एक काम करता हुआ परिणाम पूरा करें

1.

लक्ष्य

यह tutorial Unity का एक बहुत उपयोगी beginner pattern समझाता है: ground पर click पढ़ना और character को उस point की ओर साफ, controllable तरीके से move करना.

2.

समय

30-40 मिनट / शुरुआती

3.

नतीजा

Floor पर click करने से अगला destination set होता है.

शुरू करने से पहले

लक्ष्य, इनपुट और सफलता की शर्त जांचें

जब आपको पता होता है कि स्क्रीन पर क्या दिखना चाहिए और कौन सा नतीजा पूरा माना जाएगा, तो लेसन बहुत आसानी से आगे बढ़ता है.

1

यह tutorial Unity का एक बहुत उपयोगी beginner pattern समझाता है: ground पर click पढ़ना और character को उस point की ओर साफ, controllable तरीके से move करना.

2

Camera.main.ScreenPointToRay से screen click को 3D ray में बदलें और Physics.Raycast से ground detect करें.

3

Floor पर click करने से अगला destination set होता है.

1स्टेप-बाय-स्टेप

1
Step 1
Mouse position से ray cast करें
Camera.main.ScreenPointToRay से screen click को 3D ray में बदलें और Physics.Raycast से ground detect करें.
2
Step 2
Hit point को target के रूप में save करें
जब ray ground layer से टकराए, hit.point को cache करें और object या player की destination मानें.
3
Step 3
Smooth movement और rotation जोड़ें
Position के लिए Vector3.MoveTowards इस्तेमाल करें और जरूरत हो तो destination की ओर turn कराने के लिए Quaternion.LookRotation तथा Slerp जोड़ें.

2कोड

Click-to-move controller
csharp
using UnityEngine;

public class ClickMoveController : MonoBehaviour
{
    [SerializeField] private float moveSpeed = 5f;
    [SerializeField] private LayerMask groundLayer;

    private Vector3 targetPosition;
    private bool hasTarget;

    private void Start()
    {
        targetPosition = transform.position;
    }

    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out RaycastHit hit, 100f, groundLayer))
            {
                targetPosition = hit.point;
                hasTarget = true;
            }
        }

        if (!hasTarget) return;

        transform.position = Vector3.MoveTowards(
            transform.position,
            new Vector3(targetPosition.x, transform.position.y, targetPosition.z),
            moveSpeed * Time.deltaTime
        );
    }
}

3चेकलिस्ट

  • Floor पर click करने से अगला destination set होता है.
  • Object केवल intended ground layer पर react करता है.
  • Movement speed Time.deltaTime की वजह से stable रहती है.

4किरदारों के साथ समीक्षा

Hajime, सीखने वाला किरदार
Floor पर click करने से अगला destination set होता है.
Coco, गाइड किरदार
पहले लेसन को जैसा है वैसा पूरा करें, फिर एक मान या UI detail बदलकर विचार को अपना बनाएं.
छोटा बदलाव: पहले लेसन को जैसा है वैसा पूरा करें, फिर एक मान या UI detail बदलकर विचार को अपना बनाएं.

अगले ट्यूटोरियल