質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

231閲覧

Rayで動かしているオブジェクトをマウスクリックで固定したいです。

adisa

総合スコア6

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/01/29 12:58

編集2018/01/29 13:08

ヘディングのテキスト### 前提・実現したいこと

Plane(Colider付き)の床の上で、マウスに追従する動きで指定されたオブジェクトを動かし、マウスの左クリックで固定を目指しています。マウスの追従に関してはMain CameraにアタッチされているRay(光線)によって追従は成功しており、Plane上に動いています。しかし、マウスをクリックして固定させる方法が上手に行きません。Rayに関するScriptを無効にしたり、Rigidbodyでx,y,zを固定にしても失敗しました。どなたかご教授お願いします。
(Script無効に関するものは、ボタンを押して特定のオブジェクトを生成するのですが、2つ以上のオブジェクトも動かなくなるので失敗しました)

ソースコード ```using System.Collections; using System.Collections.Generic; using UnityEngine; public class ray2 : MonoBehaviour { //public GameObject targetObject; Vector3 m_ZAixs; public Rigidbody m_Rigidbody; public GameObject Light; // Use this for initialization void Start() { m_Rigidbody = Light.GetComponent<Rigidbody>(); m_Rigidbody.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionZ; // Update is called once per frame } void Update() { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity)) { GameObject t = GameObject.Find("SpotLightWhite 1 1(Clone)"); var targetPos = new Vector3(hit.point.x, hit.point.y, hit.point.z); t.transform.position = targetPos; } } if (Input.GetKeyDown(KeyCode.S)) { //Light.GetComponent<Rigidbody>(); //m_Rigidbody.constraints = RigidbodyConstraints.FreezeAll; } } } ### 試したこと オブジェクトにRigidbodyを付与して、Frezzeしても動きます。 Rayで動かすScriptを無効化してもダメでした。 オブジェクトのTagを、マウスクリックした段階で変え、親ペアレントをカメラからPlaneに変えても失敗しました。 ### 補足情報(FW/ツールのバージョンなど) Unity Ver2017,3です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

スクリプトがカメラにアタッチされていたので、Prehubにアタッチしなおして、Sキーがおされたときにdestry関数を導入しました。結果、止まりました。

投稿2018/01/30 00:40

adisa

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問