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

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

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

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

Unity3D

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

Unity

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

Q&A

解決済

2回答

963閲覧

Unity 特定の角度の範囲の中でプログラムを作動させる方法

nagetto

総合スコア0

C#

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

Unity3D

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

Unity

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

0グッド

1クリップ

投稿2021/10/22 16:27

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RotateLog : MonoBehaviour
{
void Update()
{
if ((0 <= transform.rotation.x) && (transform.rotation.x < 90))
{
Debug.Log("0 < x < PI/2");
}
}

}

上記のようにプログラみを組み0度以上90度未満の時のみプログラムが作動する(今回だと0 < x < PI/2というログが表示される)ものを作りたいのですが、実際に動かしてみるとtransform.rotation.xの値が90度より大きい時でもプログラムが作動し続けて困っています。
どう修正すればいいでしょうか?

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

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

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

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

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

guest

回答2

0

自己解決

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Straight : MonoBehaviour
{

public Rotating rotating; void Update() { if ((0 <= rotating.transform.localEulerAngles.x) && (rotating.transform.localEulerAngles.x < 90)) { if ((rotating.transform.localEulerAngles.y == 0) && (rotating.transform.localEulerAngles.z == 0)) { Debug.Log("0 < x < 90"); } } }

}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotating : MonoBehaviour
{
public Transform tyusya;
Quaternion rotationn = Quaternion.identity;

private void Update() { rotationn.x = tyusya.transform.localEulerAngles.x; transform.rotation = Quaternion.Euler(rotationn.x, 0.0f, 0.0f); }

}

Rotatingクラスは空のゲームオブジェクトにつけ、そのオブジェクトのRotationのy座標とz座標の値は0にしておきます。
正直理屈はよく理解してないのでどういう原理で動いているのか説明はできませんすみませんm(_ _)m。

投稿2021/10/24 10:50

nagetto

総合スコア0

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

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

0

transform.rotation.x
ではなく
transform.localEulerAngles.xとしてください。

投稿2021/10/23 00:47

編集2021/10/23 01:22
YOshim

総合スコア1085

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

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

nagetto

2021/10/23 15:32

回答ありがとうございます! if ((0 <= transform.rotation.x) && (transform.rotation.x < 90))を if ((0 <= transform.localEulerAngles.x) && (transform.localEulerAngles.x < 90)) にしたのですがうまくいきませんでした。どうすればいいでしょうか?
nagetto

2021/10/24 05:45

なんか色々やったらできました! ありがとうございました!
YOshim

2021/10/24 07:43 編集

>なんか色々やったらできました! 何をやったのか教えて頂けるとありがたいです。 また解決済として頂けますでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問