【ゲームエンジン】Unity初心者質問スレBuild3
レス数が1000を超えています。これ以上書き込みはできません。
C#の初歩的な質問失礼します
変数Aが1または2であり、変数Bが3または4である → 条件成立
これのIF文の書き方教えてださいm(_ _)m (A=1 or A=2) and (B=1 or B=2)
みたいな感じじゃない?なおc#やったことないからもっと別の書き方があるかもしらん (A=1 or A=2) and (B=3 or B=4) か >>939
if( ( A==1 || A==2 ) && ( B==3 || B==4 ) ){
処理...
} switch(a){
case 1:
case 2:
switch(b){
case 3:
case 4:
---処理
break;
break;
なんちってw アスペクト比か
ワイもそこは苦労したなあ
3万円くれたら教えてやってもええで
こんなところで質問してるような奴には3日じゃとても解決できないだろうから安い買い物やと思うでぇ? >>940-942
なるほど
ふたつともカッコでくくればよかったのですね
if( A==1 || A==2 && B==3 || B==4 )
こんな感じで危うく間違えそうでした・・・
助かりました ありがとうございます Unityにおいて、円錐が延びて複数の敵を貫く魔法、左から右へ棒が薙ぎ払って範囲内にいる敵にダメージを与える魔法等を作っているのですが、
Unityのエフェクトでは難しそうだと思い、Blenderでそれらしいアニメーションを起こすオブジェクトを作ったのはいいのですが、
壁や岩、木などの遮蔽物を貫通してしまいます
まだ試していませんが、当たり判定であるコライダは遮蔽物との接触を検知して拡大を止めることができるんだと思うのですが、
アニメーションまではそうはいきません
遮蔽物を貫通しないようにする良い方法は何かありませんでしょうか 接触を感知したらエフェクトが消滅するアニメーションに切り替えるとか? 色々とありがとうございます
>>947
ただ停止させると例えば円錐の場合、伸びきる前よりも壁に当たった部分が細くなるため
不自然な感じになってしまいます
工夫が必要な部分ですかね
>>948
エフェクトが残っている部分には判定を持続させたいため、
ただ消失させると伸びきる前の根元の部分が不自然に消えてしまいます
この辺りも少し工夫を考えなくてはならないようです
>>949
アニメーターでの状態管理でどのようにするのでしょうか
アニメーターの部分も初歩的な所しか理解していないため、どうすればよいかわからない状態です
できれば、遮蔽物に遮られた先のみ消失するようなものが理想なのですが
>>950
動画からのリンクが切れていたためどのアセットを使えばよいかわからないのですが
結構複雑な動きが可能なようですね
blenderからだと作り直しの際にリグの再指定に再インポート時のアニメーターやファンクションの再設定やらかなりの手間なので
Unity側で完結できるのであればその方が助かるので、検討してみようと思います 当たった先が消滅でなんとなくやりたいことがわかったけど、それはこの時点で悩んでるスキルだとちょっと難しいかもね。
とりあえず突き抜けたところで消滅とか、綺麗にするより荒削りで作ることをお勧めします。私は完成第一主義なので。
そのあと慣れてくればアニメを極めるとかでいい気がしました。私が言えるのはここまでかなぁ。 >>951
>リンクが切れていた
Please visit this link to see the page on our new website.
this linkをクリックしよう >>945
演算子の優先順位は C# の場合 &&(条件&) のが ==(条件OR) より高いからね
それらより ==(等価比較) のがさらに高いのでこっちはカッコ要らんけれども
優先順位表はいつでも見られるところに置いとくといいよ >>952
面白さの肝になる部分なのでスキルアップの方を取りたいと思います
>>953
ちゃんと見ていませんでした。失礼しました
ちょっとお高いので購入はしていませんが
兎も角Unityでのエフェクトの作り方を学ぼうと思うのですが、
設定が多岐にわたっていて理解するのが大変です
その分やれることが多いということなのでしょうが
おかげでBlenderでやってしまおうかと考えてしまったわけですが
サイトも古いものだと項目が違っていて中々学習が難しいのですが、
よいサイトがあったら教えてください
Unity2018使用中です Unity5時代のコードって2019でも変わらず動くのでしょうか?Unity5時代の本に面白そうなのがいくつかあって迷っています。
とりあえずUnityの教科書2019完全対応版と、その古い版のUnity5の教科書と見比べてみました。
インストール手順、スマホのサイズ、Terrainエディタ、Particleエディタ、uGUI>UIは変わっていましたが、コードはほぼ同じでした。
これだけだといけそうな気もするのですが、先輩方のご意見が聞きたいです。 ちまちま変わってるとこあるけどまあだいたい動くと思うよ
もし違ってたらVSちゃんが、それ古い書き方だよこっちの方がいいよって言ってくれる Unityの機能と作り方把握して無い段階でバージョン違いの本とか見たらカオスになりそう >>958
ありがとうございます。VSが教えてくれるのは安心ですね。勉強になりそうです。
>>959
お気遣いありがとうございます。混乱しないように気を付けます。 >>956
まあ何で作るかは自由だけど、unityに限らず普通こういうのはパーティクルシステムで作る
たしかに設定項目多くて面食らうけど、まずはスタンダードアセットにあるパーティクルを弄ってみたらどうだろ >>954
正直、そんな優先順位表をみないとわからないような順位に依存するぐらいならカッコつけろやぼけと思うわ ボタンの子供として作成したimageがあり、
このimageの画像をスクリプトで変更しようとしたら、
子供のimageではなくボタンのimageが変わってしまいました。
ボタンの親であるパネルから以下のようなスクリプトを実行しています。、
おそらくGetComponentInChildrenでボタンそのもののimageを取得してしまっているのだと思います。
ボタンの子供となっているほうのimageを指定するには、どのようにスクリプトを組めばよいのでしょうか?
_child = transform.FindChild("Button_01").gameObject;
bbb = _child.GetComponentInChildren<Image>();
bbb.sprite = xxx; >>965
ゲットコンポーネン「ツ」インチルドレンで複数取得、
その中でゲームオブジェクトが「_child」じゃない奴が
目的のimage。 3Dのゲームにおいて、プレイヤーが飛行可能な状態になったときに、マウスでクリックした方向へ向かって飛んでいってほしいのですが、
Raycastではコライダがないと反応しないということもあり、空をクリックしても進まないため、どのように実現すればよいかがわかりません
マウスでクリックした方向へ飛行、右クリックで停止、ということをやりたいのですが、どうすればよいでしょうか >>966
ありがとうございます!
いただいたアドバイスから以下のように修正してうまくいきました。
_child = transform.FindChild("Button_01").gameObject;
bbb = _child.GetComponentsInChildren<Image>();
bbb[1].sprite = xxx; ボタンの下のイメージをボタンのgameobjectからFindすれば? >>969
ありがとうございます。確かにそれでもよかったですね。
最初、その方法を試していたのですがうまくいかず、
悩んでこちらで質問したのですがどうやら単純に記述を誤っていだけみたいです。
今、やってみたらうまくいきました。
_child = transform.FindChild("Button_01").gameObject;
_child2 = _child.transform.FindChild("Image_01").gameObject;
bbb = _child2.GetComponentInChildren<Image>();
bbb.sprite = xxx;
結果、>>966さんのような方法も知ることが出来たのでラッキーでした(笑
御二方に感謝です。 >>967
マウスのポイント拾って、画面の中央から離れている数だけ向きの角度を補正する。 >>967
カメラからのレイは作れるから、そのレイと平面の交差判定すればいいだけ 簡単に説明されていることからおそらく比較的楽に実装できるようですが、
まだ全く分からないので詳しくお願いします
>>971
これは2Dの移動の方法でしょうか?
マウスのポイントと画面中央からの距離だけでは奥行の場所がわからないので移動しようがありません
奥行を含めたマウスのポイントを取得する方法があるのでしょうか?
>>972
生成されたレイが何らかのコライダに当たればその場所を特定し、そこへ進むことができるのですが、
空中を飛行するためにはコライダがない所にレイが発射されるため、場所が特定できません
その上で平面の交差判定とは、何か疑似的にコライダを空中に設け、レイキャストで交差判定をおこなうということでしょうか? >>973
何も無ければその方向にずっと進めればいいのでは?もしくは押してる間。 iPadのLiDARいじろうとARKit触るかーと思ったけどUnityでやってるあれどうするのって見るのが怠いのでAR Foundation対応はよ >>973
何もないのでその目的地となる座標が取れず、そのため方向もわからないので進むことができません
方向だけでも取れればよいのですが、何か方法があるのでしょうか? >>973
974の話はそもそも仕様だから。
最初の問いについては、奥行きに何もなければ検出できるわけないよね。 >>976
「方向」を取得する方法を質問してそれを教えてくれてるんだから奥行きは関係ないのでは?
方向が取得できたらそのままZ軸も+すればいいじゃん >>974
>>977
何度もすみません
何をどうすれば飛行を実現できるのか理解が及びません
その方向、要するに空中に進めればよいのですが、その方向を取得する方法が未だ分かりません
目的地を検出せずに方向を指定することができる方法があるのでしょうか?
それとも空中にダミーのコライダか何かを設置し、レイキャストで検出させる方法が正しいのでしょうか? >>978
すみません
方向を取得する方法を教えてくださっているということですが、どの回答のことでしょうか? FPSかtps
FPSならカメラの向いてる方にtranslateで+z
TPSならキャラのむいている方にtranslateで+z
TPSだと、キャラを向けるのにマウス画面座標を取得、キャラの画面位置と比較。相対角度が0になるようにキャラの向きを動かした後、前述処理。 Unityで画面のアスペクト比を変更した場合、画面の左右が切れてしまいます。
画面の上下は切れないので、画面の垂直方向が優先されて計算されているのだと思うのですが、これを水平方向を優先させて計算するにはどうすれば良いですか? すみません、質問です。
ボタンA … Prefabの中のオブジェクトとして存在
ボタンB … シーン内に1つだけ存在(Prefabではない)
上記の2つのボタンがあり、
ボタンAを押したら、ボタンBに追加したコンポーネントC#を実行したいです。
そこで、ボタンAのイベントトリガー内に、対象オブジェクトとしてボタンBを指定しようとしたところで
行き詰まってしまいました。
ボタンAのイベントトリガーのインスペクター画面を出すには、
OpenPrefabでPrefab内を編集する必要がありますが、
OpenPrefabで編集中の時はシーンのヒエラルキータブが呼び出せません。(Prefabのヒエラルキーが表示されます)
こういう場合、シーンのヒエラルキーにあるボタンBを、
ボタンAのイベントトリガーに投げ入れたい時はどのようにすればよいのでしょうか? >>981
ありがとうございます
おかげで何とか3次元移動が可能になりそうです VRゲームを作っているのですが
VRカメラやVRコントローラーを1から
作成する知識がまだなく、SteamVRPluginのサンプルシーンから
playerをコピーして作成を進めています。ですがこのコピーしたplayerは
DontdestroyOnloadになっててScene
切り替え時に移行先Sceneで重複してしまいます、どなたかplayerのdestroyを
解除する方法をご教授頂けないでしょうか? >>985
最後の書き方がおかしかったです。
誤 playerのdestroyを解除
正 playerのDontdestroyOnloadを解除
もう少しでゲームは完成なんですが
シーン切り替えが上手く行かないとどうしようもなく。教えて頂けましたら作ったゲームのDownloadリンクを貼りますので何卒!() >>983
プレハブにインスペクタで参照を持たせることができるのは、そのプレハブ内に存在するものだけです。
なので、
プレハブ内に「シーン内からボタンBを探し、アタッチされたC#を実行する」ような「ブリッジになるスクリプト」を作って、ボタンAからはそれを呼ぶ、というかんじでどうでしょうか。 http://s.kota2.net/1585404584.png
ユニティのテキストでこのような二重縁取りは簡単に出来るでしょうか? >>987
なるほど!そうなんですね
大変参考になりました。
ありがとうございます。 Unityで「MSゴシック」や「MS明朝」などの
フォントを使う事ってできるのでしょうか? >>988
2000円で手取り足取り教えてあげるよ >>983
申し訳ない、>>987なんですが、
「プレハブがアセット内にある段階でシーン内への参照を持たせたい」のだと勝手に勘違いしてしまいました。
シーン内に置いたプレハブ(インスタンス)であれば、オブジェクトの左端の三角アイコンで子要素を展開すれば
子要素もインスペクタを変更できますのでそこから参照を持たせることができます。 2Dオブジェクトに2つの画像をスクリプト側から任意のタイミングで
交互に切り替えたいのですがどうすればできますか?
1つの2Dオブジェクトに2つの画像を登録したりはできないでしょうか?
やりたいのはアニメーションではなく静止画画像の切替です。 >>992
いえいえ!ありがとうございます。
987さんの最初の認識で合ってますよ。
ボタンAはシーンに存在せず動的に生成されるオブジェクトですので、アセットにしか存在しません。
最初からシーンに存在するのはボタンBのほうだけです。
(これは私のほうが説明不足でしたね。すみません)
今回、追加で説明していただいたのは、
「ボタンAがPrefabであってもインスタンスとしてシーンに存在していたら可能だよ」という事ですよね。
このケースは想定していなかったので、より深くPrefabとインスタンスについて知ることが出来ました。
丁寧なフォローありがとうございました!
それにしても、どうしてこんな制限があるんでしょうね〜
アセットだけに存在するPrefab内からでも指定できてもよさそうなのに。。。
プログラムに疎い私にはさっぱりです(笑
987さんの最初のアドバイスどおり、「ブリッジになるスクリプト」を用意して対処したいと思います。 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 77日 23時間 31分 8秒 レス数が1000を超えています。これ以上書き込みはできません。