[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
419
(1): 2020/05/11(月)21:33 ID:Zx4BJXIc(1) AAS
>>418
真面目な話すると
個人利用に当たるかどうかも自分でわからない奴は手を出さないほうが身のため
420: 2020/05/11(月)21:54 ID:SoudElxg(2/2) AAS
>>419
分かりました。
ありがとうございます。
421
(3): くまじょ 2020/05/12(火)14:45 ID:BsMD4e4s(1/3) AAS
unityで2dで開発してます
マウスボタンが押されたかの方法をネットで調べて
Update()でif (Input.GetMouseButton(0))
によりマウスボタンが押されたか判定が実現できました

マウスボタンを押していないときも含めてマウスの座標も得られました

しかし
ドロップダウンのリストが現れているときも
Update()でボタンダウンとかできてしまうので困っています

どうすれば
ドロップダウンのリストが現れているとき
Update()でのマウス位置やボタンダウンに関する処理を
させないようにできるのでしょうか?

自分なりに調べたり試したところUpdate()では何もしないのがいいのかな
ドロップダウンのリストが現れているときというのがわからないから
ドロップダウンのリストの生成やアクティブやZオーダーもこちらで制御できないし
キャンバス2つ用意してEventSystemでなんとかするのかな
422
(1): 2020/05/12(火)15:21 ID:tbAYOBBo(1/2) AAS
>>421
まず何がしたいのかも何が言いたいのかもわからないです。
現在の自分の状況をまったく知らない人が見てもわかる質問しましょ?
423
(2): 423 2020/05/12(火)15:39 ID:oz8b1+GC(1/5) AAS
他のオブジェにアタッチしたスクリプトの変数をボタンを押して変更したいです。
Boolean(空オブジェ)にアタッチしているBoolean.cs の中の変数 bool BOOL を ボタンを押して、false から true にしたいです。

ヒエラルキーにあるオブジェ
Canvas
  Button
Boolean(空のオブジェにBoolean.csアタッチ)
424
(1): 423 2020/05/12(火)15:39 ID:oz8b1+GC(2/5) AAS
//■■■Booleanに付けたスクリプト■■
using UnityEngine;
public class Boolean : MonoBehaviour
{
public bool BOOL = false;

void Update()
{Debug.Log(BOOL);}
}

//■■■Buttonのクリックイベント■■
using UnityEngine;

public class Button : MonoBehaviour
{
bool BOOL;
public void Click()//ボタンのクリックイベント
{
BOOL = GameObject.Find("Boolean").GetComponent<Boolean>().BOOL;

if (BOOL == false)
{BOOL = true;}

else
{BOOL = false;}
}
}

ボタンを押してもDebug.Log(BOOL) が true にならないです。
Booleanの中のboolean型の変数 を true にしたいのでどうか教えてください。
425
(1): 2020/05/12(火)16:08 ID:tbAYOBBo(2/2) AAS
>>424
bool BOOLの下に
Boolean booleanを宣言して
booleanにゲットコンポーネントでBooleanをいれるか、シリアライズフィールドでオブジェクトBooleanをアタッチします

BOOL = trueって、なってるところを
boolean.BOOL = true

に変えればいいと思います
426
(2): 2020/05/12(火)16:18 ID:Ys8/n9tg(1) AAS
下記のスクリプトのようなオブジェクトが滑らかに移動する動作をUIのボタンを押したら移動するようにしたいのですがどうすればいいでしょうか?

public class Move : MonoBehaviour
{

//スタートとゴールの設定
public Transform StartPosition;
public Transform GoalPosition;

// スピードの設定
public float speed = 1.0f;

//2点間の距離を入れる
private float distance_two;

void Start()
{
//二点間の距離を代入
distance_two = Vector3.Distance(StartPosition.position, GoalPosition.position);
}

void Update()
{
// 現在の位置
float present_Location = (Time.time * speed) / distance_two;
// オブジェクトの移動
transform.position = Vector3.Lerp(StartPosition.position, GoalPosition.position, present_Location);
}
}
427: 2020/05/12(火)16:22 ID:oz8b1+GC(3/5) AAS
>>425
ご親切な回答を有難うございます!
おかげ様で出来ました!
428: 2020/05/12(火)16:47 ID:1M8HduiR(1) AAS
IT掲示板群 外部リンク[aspx]:x0000.net

学術の巨大掲示板群 - アルファ・ラボ 外部リンク:x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
外部リンク[aspx]:x0000.net
UIライブラリ (C#, 2D) を作ったよ
外部リンク[aspx]:x0000.net
連続と離散を統一した!
外部リンク[aspx]:x0000.net
4Dエンジン
外部リンク[aspx]:x0000.net
matrixのライブラリ
外部リンク[aspx]:x0000.net
ある強力なFor関数
外部リンク[aspx]:x0000.net
SQLライブラリ
外部リンク[aspx]:x0000.net
429
(2): 2020/05/12(火)18:57 ID:oz8b1+GC(4/5) AAS
void OnEnable()
{
GameObject _button1 = GameObject.Find("Canvas").transform.Find("button1").gameObject;
_button1.gameObject.SetActive(true);
GameObject _button2 = GameObject.Find("Canvas").transform.Find("button2").gameObject;
_button2.gameObject.SetActive(false);
}
↑このようなコードをスタート関数を用いる方法で書き直しました↓

GameObject _button1;
GameObject _button2;

void Start()
{
_button1 = GameObject.Find("Canvas").transform.Find("button1").gameObject;
_button2 = GameObject.Find("Canvas").transform.Find("button2").gameObject;
}

void OnEnable()
{
_button1.gameObject.SetActive(true);
_button2.gameObject.SetActive(false);
}

そうしたら_button1.gameObject.SetActive(true);の行の所で
NullReferenceException: Object reference not set to an instance of an object というエラーがでました。
どのオブジェクトにも参照を持たない参照変数にアクセスしようとするエラーらしいのですが、一応動作はしている見たいで、参照もできている感じですが無視していいのでしょうか。
スタート関数を用いないほうがいいのでしょうか。
430
(1): 2020/05/12(火)19:18 ID:FcNJ6qJL(1/2) AAS
>>429
NullReferenceExceptionが出るということは、_button1が取得できてないんじゃないでしょうか。
Debug.Log(_button1)で中身が出力されますか?

それと、枝葉の話ですがOnEnable()の中では、
_button1.SetActive(true);
として、gameObjectはいらないと思います。
431: 2020/05/12(火)19:24 ID:FcNJ6qJL(2/2) AAS
>>421
bool IsPressed = false;

if (Input.GetMouseButton(0) && IsPressed==false) {
IsPressed = true;
・・・
}

というふうにするのはどうでしょうか。
ドロップダウンリストを消したタイミングで
IsPressed = false;
にしてやればいいと思います。
432
(1): くまじょ 2020/05/12(火)19:39 ID:BsMD4e4s(2/3) AAS
>>421
>>422

画像リンク

Update()でif (Input.GetMouseButton(0))で
インスタンス化することで描画とする

画像リンク

ドロップダウンのリストでクリック

画像リンク

この意図しない描画を防ぎたい
433: くまじょ 2020/05/12(火)19:53 ID:BsMD4e4s(3/3) AAS
>>432
IsPointerOverGameObjectで解決しました
434: 429 2020/05/12(火)20:19 ID:oz8b1+GC(5/5) AAS
>>430
どうも有難うございます。Debug.Logで調べてみたのですが
どうやらスタート関数よりOnEnable()関数の方が先に呼ばれているようです。
それでうまくいってなかったのだと思います。

OnEnable()の中では、
_button1.SetActive(true);
として、gameObjectはいらないと思います。
↑了解いたしました。有難うございます。
435: 2020/05/12(火)21:00 ID:9ZCShqmp(1) AAS
>>426
まず、滑らかに移動するルーチンをお作りなさい。
つぎに、
ボタンが押されたらある変数が0から1になるルーチンを作りなさい。こちらで押したら離しても1のままとなるように。
436: 2020/05/12(火)21:52 ID:fJoHzdFR(1) AAS
>>426
public class Move : MonoBehaviour
{
//省略

private bool flag;
private float time;

//省略

void Update()
{
if(flag)
{
if(time > distance_two / speed)
{
time = distance_two / speed;
flag = false;
}
float present_Location = time * speed / distance_two;
transform.position = Vector3.Lerp(StartPosition.position, GoalPosition.position, present_Location);
time += Time.deltaTime;
}
}

//buttonで呼ぶ
public void MoveStart()
{
flag = true;
}
}
437
(1): 2020/05/13(水)16:40 ID:xzAoXAgE(1/2) AAS
初心者だから毎日の様に新しい知識が増えて、同じプロジェクト内でもスクリプトの記述ルールとかが変わっていきます。

好きにしろよって感じだと思いますが、皆さん書き直してますか?
まだまだクソコードだからキリが無いとも思いますが、コンポーネントの取得方法の書き方などが変わると目的の場所がわからなくなっていくので・・・。
438
(1): くまじょ 2020/05/13(水)17:03 ID:0shJujSR(1) AAS
初心者だから混乱するので作り直すの難しそう
439
(1): 2020/05/13(水)17:10 ID:xzAoXAgE(2/2) AAS
>>438
最初は何でもかんでもオブジェクトに貼り付けて全部インスペクターで管理しちゃってたのが段々スクリプト完結になっていったりとか。

前者はUnityの良さでもあるのでNGでは無い気もしますが、混在してるとなんだかモヤモヤしますね。
440: 2020/05/13(水)22:24 ID:1JAlkaKy(1) AAS
記述ルールの変更ということで、

初めはステータスコンポーネントにキャラクターの能力値を記述していたのですが、
あの能力を使わせよう、この動きを行わせようとしているうちにどんどんメンバが増えていき
講読性も拡張性も大変悪いので、GetterSetter他パラメータ固有動作を一つずつクラス化し、
ステータスコンポーネントのDictionalyに随時格納しているところなのですが、

Dictionalyに格納したクラスは格納したまま変更可能でしたっけ?
出来なければクラス化したパラメータをメンバとしてステータスコンポーネントに並べるだけでなのですが、
そうなると果たしてこの方法が講読性、拡張性を改善した方法と言えるものなのか
そもそもこのやり方、いろいろな意味で正しいのかどうか

既に修正に多大な手間と時間を要している状態なわけですが、自分では判断がつかず悶々としています
皆様の所見としてはどうなのか、お答え願います
441: 2020/05/14(木)03:31 ID:W8qTABLo(1/2) AAS
ue5が発表されてTwitterでトレンドまでなってるけどunity使ってる君たちはどんな気持ちなんだ?
442: 2020/05/14(木)04:00 ID:lb4JODdi(1/3) AAS
いつだって俺たちはゴキゲンだぜ☆
443
(1): 2020/05/14(木)07:22 ID:WhwRP1nx(1/2) AAS
ゲームエンジの能力=自分が作れるゲームって勘違いしてるのかな?
444: 2020/05/14(木)07:26 ID:lb4JODdi(2/3) AAS
?橋聖子なんて無視しとけ
あいつUnityどころかRPGツクールも挫折するレベルだぞ
445: 2020/05/14(木)07:27 ID:lb4JODdi(3/3) AAS
こんな煽りとID被ってすまんな
446: 2020/05/14(木)10:18 ID:T/0wftDs(1) AAS
UE5の情報が公開されましたね。
アセットの扱い一つ見ても、”そうそう、それが欲しかったんだよ!”と叫びたくなるほど、
UE5陣営が本当に開発に寄り添っている事が良く分かる、素晴らしいデモだと思います。
UE4の時点でもう進化の限界だろうと思っていましたが、彼らは軽く想像を超えてきます。
unityのデモはいつも何が言いたいのか意味解らないですね。
外部リンク:www.unrealengine.com

4からの互換もかなり考慮されている模様。
unityは0.1でもバージョンが違うと動かない事が多いので、
この辺りの配慮も嬉しいですね。
447: 2020/05/14(木)10:32 ID:SRg54q3H(1/2) AAS
2dゲーム作るとしてもue5の方がいいのか?
448: 2020/05/14(木)10:34 ID:zpORb8AU(1) AAS
Unityすらまともに扱えない初心者が集まって教えて君するスレで何やってるんだこいつ
エンジン選ぶ立場の上級者がいるスレでやればぁ?
1-
あと 554 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.025s