【ゲームエンジン】Unity初心者質問スレBuild4
レス数が1000を超えています。これ以上書き込みはできません。
画像を取り込んだ時にインスペクターで設定する
FilterMode という項目ですが、
FilterModeはPoint(no filter)にしておいたほうが負荷がかからなくなるのでしょうか?
動作が軽くなるのであれば全部の画像のフィルターモードをPoint(no filter)にします。 それともう一つ
フィルターモードの下に
compression という画像を圧縮するかどうか項目もあるのですが、
こちらも圧縮無しの Noneにしたほうがゲームの動作が軽くなるでしょうか。
かなり大きめの画像をアニメーションクリップで動かしたいので、容量が多少多くなっても
動作が軽いほうがいいと思ってます。 キャラクターコントローラーが悪いのか、Updateの処理が悪いのか、アニメーションが悪いのか分からないのですが、動きの違和感を取ることができずに困っています
1プレイヤーが移動中>2魔法を打つアイコンをクリック>3移動(走る動作)を止める(敵をターゲッティングしていたらその方向を向く)>4構えて魔法を撃つ
という流れを作っているのですが、
3で歩くモーションが止まる前、対象の方向を向く前に、発射の構えをする前に魔法を放ってしまいます
「Unityゲーム開発 オンライン3Dアクションゲームの作り方」
かなり古い書籍ですが、この書籍をもとにキャラクターの移動には専用のCharacterMoveスクリプトを使用して、SendMessageで目的地の情報等を送っています
行動はすべてマウスで行うようにしており、左クリックで指定した位置へ移動するようにしています
アニメーション遷移も遊びの部分?は消し、終了時間ありのチェックも外してあります
特定の行動(魔法、スキル等)を使用の際、移動・方向転換をきっちりと止めてから次のモーションに移ることはできないでしょうか http://s.kota2.net/1585634790.gif
このようにボタンを押して画像が切り替わるものを作りたいです。シーン遷移ではない方法で作りたいです。
自分が本を読んで考えた方法は、列挙型 enum で5個のパートを作って、
最初の画像1オブジェクトをスクリプトで画像2や画像3に変更する方法です。画像は配列で5つ格納します。
2個の移動ボタンを押したら列挙型で用意したパートに移動させて、配列で格納した画像を写すようにする方法です。
ただこの方法だと5個の画像をピッタリ同じサイズにしないといけないので、そこがネックになっています。
何かいい方法があったら教えてください。 >>6
もう少しやりたい事を明確にして頂けると回答しやすいです。
サイズをぴったり同じにするのが何故ネックなのですか?
異なるサイズの画像を引き伸ばして(サイズを合わせて)表示したいのか、中央寄せで表示したいのか、アスペクト比を保ったまま〜など何がやりたいのかわからないので。 http://s.kota2.net/1585663533.gif
やりたい事はお絵描きソフトで作った装飾文字をimage画像にして
左右の送るボタンで画像テキストを送るノベルゲームを作る事が目標です。
ですので表示する位置は下の方です。
文字画像は等倍で表示したいです。x軸は画面中央にして y軸は下の方にしたいと思っています。 >>9
1オブジェクトで画像を切り替えるんじゃなくて、1画像1オブジェクトにしてそれを切り替えればいいんじゃない?
そうすればサイズも自由にできるっしょ >>9
自分は素人なので他のアプローチがあるかもしれませんが、サンプルを作って動作確認できたので一応書いときます。
1.テキストを表示したい場所にイメージのUIを置く(サイズは0×0でもなんでもok)
2.ScriptableObjectでSpriteのリストを作成(画像1)
3.テキスト画像を作ったScriptableObjectのイ
ンスペクターにすべてセットする
4.さっき作ったUIにスクリプトをセット(画像2)
https://i.imgur.com/3m3BdFc.jpg
https://i.imgur.com/92qpFB6.jpg
https://i.imgur.com/mOpsIjD.jpg
https://i.imgur.com/Mxv64v4.jpg
5分くらいで作ったやっつけ仕事なのであとは好みに変更して下さい。
あと専ブラスマホにしかいれてないので見にくくてごめんなさい。 よくあるRPGのスキルスロットを作成しているのですが、IPointerClickHandlerのOnPointerClickが反応しなくて困っています
左クリックのみでスキルを発動させたいのと、スロットをショートカットスロットに移動させても同様に動かしたいのでこちらを使いたいのですが、
反応してくれません
IBeginDragHandler、IDragHandler、IDropHandler、IEndDragHandleは正常に動いています
試しにいれてみたIPointerEnterHandlerも動きました
なのでEventSystemには問題がないと思います
スロットにはイメージオブジェクトがあるのでレイキャストがブロックされている可能性も考えて
キャンパスグループでレイキャストブロックを外してみましたが変わりませんでした
一体何が原因なのでしょう? using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class testClickHander : MonoBehaviour, IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("動作確認");
}
}
コードは上記のような簡潔なもので試しました
eventDataから左クリックの情報が取れるので利用していきたいです
ためしにIPointerUpHandler,IPointerDownHandlerを使ってみましたがこちらも反応しませんでした
各スロットは
Slot (イメージ、ここにスクリプト割り当て)
+ SkillImage
+ StateImage
+ SelectImage
とのような形になっています >>10
紙芝居のようにする方法も考えたのですが、中央に表示するキャラクターの目パチは口パクが出来いなくなってしまうので、その方法は断念していました。
>>11
どうも有難うございます!おかげさまでBackボタンとNextボタン両方実装することが出来ました!
画像の追加がすごく簡単で便利です。
コードを書いていただいて本当にありがとうございます。
知らないコードの書き方がたくさんあってとても勉強になりました! 質問失礼致します。
カードゲームの手札をよくある扇形にソートするにはどの様な手法がありますでしょうか?
ホライゾンレイアウトグループを曲線に曲げる様なイメージなのですが。 円の外周にカードの中心が来るように配置。
後はカードが離れる具合を見ながら、円からの距離を調整する。 >>17
パッと思いつくのは
アニメーションカーブとLerp関数を使う、とかでしょうか。
パスに沿ってオブジェクトを配置する、的なアセットを探してみるという手もありそうです。 >>18,19
回答ありがとうございます。
まず>>18さんのアプローチで挑戦してみようと思ったのですが円の外周を用意する事すら出来なかったので、円状にオブジェクトを並べるアセットを探して使用してみました。
文字通りカードが円状に広がったのですが、求める挙動に調整する事は出来ませんでした・・・。
>>19さんのアニメーションカーブについては理解が及ばず挑戦を諦めました。。
次はパス状にオブジェクトを配置するアセットを探してみようと思います。
色んなゲームに採用されていて、簡単そうに見える事でも自分で実装しようとすると難しいですね。
3Dのゲームも曲線を使わないものは簡単に作れたので、曲線の表現が初心者の最大の難関かもしれません。 >>20
これを新規のmonovihaviorに貼り付けて、インスペクタからカーブに山なりのカーブを、CardObjには適当なカードのプレハブを、
始点と終点にはそれぞれ空オブジェクトを割り当てて動かしてみてください。始点と終点のY位置は同じ値にしておく方がわかりやすいです。
この例はめちゃくちゃざっくりなので実際にゲームで使うには不十分だと思いますが、カーブとLerpを使って実装するためのヒントにはなるかと・・・
public AnimationCurve curve; //このカーブからY位置に足す値を取得する
public GameObject cardObj; //カードのプレハブ
public Transform startTr; //始点
public Transform endTr; //終点
public int cardNum = 52; //カード枚数
void Start()
{
SpawnCards();
}
void SpawnCards()
{
float step = 1f / (cardNum-1);
for (int i = 0; i < cardNum-1; i++)
{
var offsetY = curve.Evaluate(step * i);
var pos = Vector3.Lerp(startTr.position, endTr.position, step * i);
pos.y += offsetY;
Quaternion q = Quaternion.Lerp(startTr.rotation, endTr.rotation, step * i);
Instantiate(cardObj, pos, q);
}
Instantiate(cardObj, endTr.position, endTr.rotation);
} >>21
ありがとうございます!
帰宅したら試させて頂きます! 22です、今日一日色々試したのですが「カード真っ直ぐでも良いじゃない」という結論にいたり他の作業を進める事にしました。
丁寧にコードまで頂いたのに生かせず、質問するレベルにも達していない事を痛感しました。
回答頂いた方々申し訳ありません。
ありがとうございました! Unityで作ったゲームをリリース後に、バグ修正などのアップデート対応をするにはどのようにしたらいいでしょうか?
Unity、バグ修正、アップデート方法などで検索しても、Unity自体のアップデート解説が出てきて、
Unityで作った自作ゲームのリリース後のバグ対応のやり方が中々見つかりません。
ダウンロードとパッケージ販売を考えているので、ビルドしたプロジェクト丸ごと再ダウンロード以外の方法を探しています。
できれば修正パッチや、一部ファイルの差し替えなどでの方法を知りたいのですが、方法を教えて下さい。
解説しているサイトや書籍の紹介等もあればありがたいです 再ビルドして更新しか無いのでは?
アセットに分離出来るのは素材の部分だけだからさぁ〜 マウスクリックで指定した地点へ向けてキャラが放物線を描いて落下攻撃を仕掛ける行動を作ろうとしています
指定できる地点はキャラから半径数m以内の制限があり、その範囲内ならジャンプした時はどの距離でも同じ高さまで飛び、
指定した地点へ落下するようにしたいのですが、どのようにすればよいのかわかりません
リジッドボディにそういう放物線を楽に実装できる関数があるということなので使ってみた所、
ジャンプの前にキャラが地形をすり抜けて延々と落下してしまうため使えませんでした
仕方なくキャラクターコントローラーで実装しようとしているのですが、普通のジャンプのように
velocity.yに加速度を付与してその場で高く飛び上がるだけでうまくいきません
何か良い方法はないでしょうか テキストをくっきり表示させる方法あれば教えてほしいです
2Dスプライト画像のFilter ModeでPoint(no filter)を選択した時みたいに
キャンバスのテキストをぼやけないように表示させることってできますか? >>26
同じ高さで違う距離にするには、独自で座標処理するのが楽。
真面目な物理演算で求めるには、多分こういう質問してるぐらいだから、いまはやめた方がいいよ。
どうしてもやるっていうなら、ベロシティの挙動をしっかり把握、勉強して、着地地点からの逆算で角度と加速度を割り出す式を作る等がんばれ。 ttps://keisan.casio.jp/exec/system/1204505768
で使っている式使えば良い AdMobバナーの表示非表示切り替えがしたいのですがコードがうまく書けません
https://qiita.com/hymst/items/f1c70cdf14643b6f1c51
このページのコードを、初めに広告を表示させるシーンのオブジェクトにつけ、
〜
//バナー表示の停止
public void StopBanner()
{
bannerView.Hide ();
bannerView.Destroy();
}
〜
バナーを消したいタイミングのスクリプトの
void Start () { } の中に StopBanner(); と書くと
「現在のコンテキストに'StopBanner'という名前は存在しません」という赤線エラーが出るので、
修正候補に従って
private void StopBanner()
{
bannerView.Hide();
bannerView.Destroy();
}
を追加すると、
「現在のコンテキストに'bannerView'という名前は存在しません」という赤線エラーが出てしまいます。
どうすればいいのか教えてください。よろしくお願いします。 >>25
素材がアセットに分離できるというのはどういうことですか?
例えばグラフィックやBGMなど容量の重いファイルを分離して、バグ修正時再ダウンロードで差し替えるのはスクリプトだけ、ということは可能ですか? >>31
可能
その疑問を感じた瞬間にググったら色々出てると思うけど
素材分離も色々と面倒だから良く計画して >>30
パッケージインポートなので先がわかりません。
まずはbannerViewが見つからないから、それを追いかけてみてください。
この通りなら、見たところ作られていますが… >>33
ありがとうございます
このように別のシーン、別のスクリプトにまたがって関連する指令を出すには
他に何か必要なコードなどがあるのでしょうか? >>34
あるよ。
別のスクリプトを参照、でググると出てきます。 >>32
すいません。最後に一つだけ教えて下さい。
この分離機能というのはAssetBundleを使うことを指していますか?
分離はこのことなのかなと思っているのですが、知識が足りていないので確信が持てません。
もしかしたらぜんぜん違うことを指していて、見当違いの方向へ走っていないかという思いが拭えなくて… >>36
そうです
使い勝手が良いとは言えない、色々と面倒だと思うので頑張って >>37
ありがとうございます! 状況的に使うことになりそうなので頑張って勉強します unityで光のレイトレーシングじゃなくて電波のレイトレーシングってできますか? 初歩的な質問なのですが
スクリプトで変数をパブリックで宣言したらインスペクターに表示されますが
変数の頭文字が勝手に大文字に代わっています(インスペクタ側)。
あれって紛らわしくて混乱するのですが慣れるしかないですか?
それともどこか設定で小文字のまま表示するとかできますか? 混乱する意味がわからない
大文字になる。それだけのことだろ privateはCamel形式、publicはPascal形式で 超初心者な質問ですが
privateの後とかに同じ単語が二つ並んでて
一つ目は頭文字が大文字で
二つ目は全部小文字とかあるのは
何なんでしょうか 本やネットのコードを見ていってるのですか?
初めのが型であり、クラスなどです
2つ目の単語は自由に名付けていいけど
便宜上型名をはじめの一文字だけ小文字にした名前が
単純に使いやすいからつけているだけだと思われます
重複しないのであれば型名とほぼ同じ名前を命名することもありえます >>44
なるほど
自由につけていいものだったんですね
ありがとうございます 全て日本語で記述する言語あったけど、外人はこういう楽な感覚でプログラム出来るんだなって思った事がある unity2020でビジュアルスクリプティング追加されるって聞いたんだけど
今来てる2020.1.0b4ではまだこの機能追加されてないの? パーソナルでダークスキンを使う方法を詳しく教えてくれませんか
というかそもそも、今のバージョンでも出来るのでしょうか?
情報サイトが古いせいなのか、うまく動かず困っています >>49
こんな所で詳しく教える様なもんじゃありません。
変えれたけど一部色が気に食わなくて元に戻したよ。
そんないいもんじゃないダークモード。 >>51
何言ってんだ?お前。
金払いたくないのでクラックする方法教えて下さい〜って誰も教えるわけないだろ。
目が痛いなら金払え。
もしくは自分で調べて自己責任でやりなさい。 ダークモードってのあるんだ。しかも有料。
そりゃ金払うべきだね。 自分はクラックしておいてその言い様とは…unity民ヤバイっすね
ダークモードで商売しようという発想も相当狂ってると思うけど あ、ビルド通って動いたんで
今度ブログにでもやり方纏めておきます すまんな、前からメンタルがダークなやつおんねんここ ダークスキン化で他にも困っている人が居るかもしれないので軽く纏めておきます
まずここから最新をdl
https://github.com/Gluschenko/UnityDarkSkin
ZIPを解凍するとUnityDarkSkin.slnが見つかるので、
これをVisualStudioで開いてビルド
この時.NET Frameworkが古いとビルド通らないので
アップデートしておく
UnityDarkSkin.Appのbinの中にUnity Dark Skin.exeが出来ているので、
こちらを実行してunity.exeを指定
以上
Unityさんも開発を民主化とか謳うんだったら、
ダークスキン如きで商売しようなんて矜持の無い事は止めた方が良いですよ
UE4との圧倒的な差が一生縮まりませんよ ここまでリテラシーないとは・・・。
ゲーム作りでも素材の権利とかちゃんと気を付けないといつか痛い目みるぞ。 知らないうえに英語も読めないなら恥かくだけだから黙っておきなよ コロナによって
あらゆることがオンラインで
する時代きた?
我々Unity製作者は有利かな? >>61
何を知らないのかもわからんし、英語ってなんの事?貼られたURLか?開いてないよ。
なんか合法的な奴探してきたならすまんね。
>>49,59の流れからヤバイ奴だと思ったけど出来たなら良かったね。おめでとう笑 今時ダークスキンが有料だけとかちょっとどうかしてる感覚だな
気づけば使用ソフトUnity意外は全部ダークスキン系だわ 洞窟物語的な2Dゲームを作ってみたいんですが、初心者は何から始めるのがいいんでしょうか… 設置したオブジェクトが数秒後に爆発し、ダメージを与える機能を作っています
設置できるオブジェクトはそれぞれ形が異なり、その形に応じて爆発の形と範囲を動的に変更したいのですがやり方がわかりません
例えば、球状や正方形なら爆発は球状に、長方形ならカプセル状に爆発と範囲を広げたいです
何か良い方法はありませんでしょうか >>64
マネタイズ手法が気に食わないから割るって方がどうかしてない? >>67
コライダのmeshを変えたり、サイズ変形させればいい。 >>69
まず始めてみて具体的にわからない事が出来た時に質問すると良いと思います。
例えばアクションゲームならこういう風にやったけどキャラの絵が出ませんとか、ジャンプさせるにはどうしたら良いですかとか。 >>70
コライダの方である程度範囲はどうにかなるかもしれませんが、爆発の方はどのように変形すればよいでしょうか? >>72
どうやら、よくわからない。
何がしたいのかをもっと細かく。 孫悟空のかめはめ波みたいな光るオブジェクト作りたいのですができるだけ簡単な方法を教えてほしいです
HAROとかいうエフェクトくっつけて試してみましたがスクリプトでの制御が全然わかりません・・・ お前らよくこんな難しいことできるな
ゲーム作るの大変すぎる
でも楽しい >>65
そのゲーム知らん
ジャンルはプラットホームっていうやつなのかな >>78
何をどう煽られたと感じたのかわからないけど、
「スクリプトで制御」という一言では何も伝わらないと思いますよ。
発射のタイミングなのか、ビームの動きなのか、ヒットの判定なのかetc
かめはめ波を発射したいだけならUnity かめはめ波でそのまんまのブログがヒットしますよ。 >>68
割ってまでダークスキンとかアホだと思うけど
一昔前みたいなUIは何とかして欲しいとは思うけど >>73
>>67
>設置できるオブジェクトはそれぞれ形が異なり、その形に応じて爆発の形と範囲を動的に変更したい
>例えば、球状や正方形なら爆発は球状に、長方形ならカプセル状に爆発と範囲を広げたいです
これ以上詳しくとなるとどういう情報が必要なんでしょうか?
・爆発の形状をスクリプトで動的に変えたい
要点はこれだけなのですが
検索してもノーコーディングでレンダラーをいじる記事しかヒットしません >>82
爆発の形状って具体的にどんなものなの?
スクリプトで変えたいって、どういう形をどういう形にしたいの?
頂点変形の気がするが、もしそうなら多分これから時間かかると思うよ。
下の矩形で練習してみては?
https://qiita.com/divideby_zero/items/eef7604e306300fd7833
求めてるものが違うなら、まだわからない。 >>82
立方体を爆発させて当たり判定を球体にしたいって事?
爆発の定義がエフェクトを表示しながら元のオブジェクトをデストロイする事ならエフェクトの当たり判定を球状にして拡大していけば良いのでは? >>83
>>84
>>67
>球状や正方形なら爆発は球状に、長方形ならカプセル状に爆発と範囲を広げたいです
ここからさらに具体的にとなると・・・
正方形、もしくは真球の物体が爆発した場合、物体を中心に球状に爆発が広がります
横に寝かせた長方形の物体が爆発した場合、その長方形を中心にカプセル状に、円柱を横にしたような形で爆発を広げたいです
直立した長方形の場合、これもカプセル状に、直立した円柱状に爆発を広げたいです
爆発自体はパーティクルのエフェクトで行っています
ただ球状に爆発させる分には問題ないのですが、オブジェクトに沿った形で爆発が形状を変える方法がわかりません
オブジェクトの形はある程度可変、長方形ならその長さをある程度自由に伸縮させて設置できるため、形ごとに爆発のエフェクトを用意するのは現実的ではありません
>ならエフェクトの当たり判定を球状にして拡大していけば良いのでは?
ただ球状に拡大していった場合、長方形の物体の場合、中央部分だけが異常に爆発と当たり判定が広い状態になるので望ましくありません エフェクトの事なのか当たり判定の事なのかわからんけど、
その物体の両端と中央の三ヶ所にコライダとパーティクル置いてそれぞれ球状に広げれば
一応中央だけ膨らむことはなくなるぞ
ちょっと無駄があるけど コライダーの形状って直接スクリプトからパラメータいじれなかったっけ?
読み込み専用? >>86
>エフェクトの事なのか当たり判定の事なのかわからんけど、
見た目と判定に差異があるとゲーム性に問題があるためエフェクトと当たり判定の両方の形は揃えたいです
なので、どちらか片方のことを話しているつもりはありません
>その物体の両端と中央の三ヶ所にコライダとパーティクル置いてそれぞれ球状に広げれば
それだと団子が3つ並んだ形で当たり判定も見た目も広がるため、今度はそれぞれの間の部分がおかしくなります
どうもこの様子だとよい方法はないようですね
パーティクルのファンクションがインスペクターの設定数より少ないようだったので難しいとは思っていましたが
>>87
コライダの形状はある程度スクリプトから設定可能なので、当たり判定だけなら球状、カプセル状自分の望んだ形にすることができることは確認しています
しかしエフェクトの方の形がそれに合わせられません >>88
わかった。
まず、当たり判定は置いときなさい。
つぎに「もしくは」もいらない。
やりたい事の例一つで絞りましょう。
まずは、横に寝かせた長方形の爆発パーティクルを楕円で広げたい、ということでいいか? >>89
>つぎに「もしくは」もいらない。
>やりたい事の例一つで絞りましょう。
すみません。ちょっとこの意味が分からないのですが、初めからやりたいことは一つしか示していませんが、どこがどう伝わったらそのような解釈になるのでしょう?
>まずは、横に寝かせた長方形の爆発パーティクルを楕円で広げたい、ということでいいか?
楕円ではなくてカプセル状です
爆発の中心にある長方形から半径は一定距離で爆発を広げたいです パーティクルを楕円で広げたいのか、一定=真円で広げたいのか? >>90
なんでこいつ偉そうなの?
そもそも長文の癖にずっと何言ってるか良くわからないw
オブジェクトの形に沿ってと言ってるのに正方形は球状に爆発しますとか、大体正方形って事は2Dなの?正六面体(キューブ)の3Dなの?爆発ってなんだよ?
自分の感覚で話してること他人がわかってくれるわけないでしょ
得たい情報を得られる様に質問出来てないのが悪い >>91
楕円でも真円でもなくカプセル状に広げたいです
長方形を例にしたのが悪かったのでしょうか
横に引かれた線の中心に、見た目と当たり判定が一致するように、各点一定の半径でパーティクルの爆発のエフェクトがカプセル状に広がるようにしたいです
>>92
偉そうにしていたつもりはありませんでしたが、不快にされたのなら失礼いたしました
どこがどう伝わらないのかがわからず、無駄に長文になってしまってすみません
全体を通してすべて3Dのことについて話しています
正方形は正六面体のことであり、これらの線を中心に一定の半径で爆発を広げた場合、球体に近い形状になるため、球状と表現いたしました
そもそも爆発とは設置したオブジェクトから広がるダメージ判定を伴うパーティクルのエフェクトです
見た目と判定が一致してくれないとプレイヤーの位置取りの判断ができなくなるため、エフェクトの形状を一致させる方法を探しています
ここまででまだ足りない情報がありますでしょうか
またご指摘いただければ改善していきたいと思います @爆発の飛散物を、球形にまき散らす
A球形の当たり判定を行う
B爆発の飛散物を、カプセル状にまき散らす
Cカプセル状の当たり判定を行う
D元オブジェクトの形に応じて、@AとBCを動的に選択する
の、どれがわからないんだ?
>>82
からするとDだけがわからないのか?
>>93
からすると@Bもわからないのか?
@〜Dの切り分けが間違っているかもしれないけど、
問題の正しい切り分けは、質問者側でやってくれ
そして、範囲を絞って質問してくれ >>94
設置する元オブジェクトの長さはプレイヤーの行動に応じて可変であるため、別々に作った@とBのどちらかを選択することでは解決できません
Bで作ったカプセル状にまき散らすエフェクトの長さ(カプセルの高さ)を変える方法を知りたいです >>95
こういう事かな?
ttps://www.jonki.net/entry/2014/11/15/165419
旧システムが使われてるから動くかわからないけど解決の糸口にはなるかも?
時間が空いた時にまだ解決してなかったらいじってみるよ。 https://stackoverflow.com/questions/40576858/unity-admob-hide-banner-doesnt-work
このページの回答のRequestBanner function:についての解説なんですが
先頭のBannerViewを取り除くだけで
ローカル変数からグローバル変数に変わるということなのでしょうか
ローカルかグローバルかはメソッド内で定義されたかどうかだと思うのですが
BannerViewがなくなることによって何が起きるのか解説お願いします。 >>95
パーティクルエミッターが、線上のが欲しいということでしょ?
両先端だけ見れば、真円状の放射、途中の線上は円柱状。
ちがうかな? >>96
具体的なサイトありがとうございます
とりあえず動かしてみるには見てみましたが望むような挙動はまだ得られていません
とりあえずメッシュの座標を変えれば望む形に変えられるということなのでしょうか
>>98
それは設置するオブジェクトに応じて別々に作ったエフェクトを割り当てる方法でしょうか
円柱状の高さを変えることができるのであれば対応できるのですが エミッターの奥行き厚みを無しすれば、線状のエミッタになるはず ラインの通知みたいな赤い丸に数字が入ってるアイコンってUnityのUIにありましたっけ?
何処かで見た覚えがあるのですがアセットだったかな・・・。 >>97
これ調べてもわからないです
マジでお願いします。 直訳すると、
「RequestBannerが悪いんじゃね?
bannerViewは田舎もんだから、もっと世界を見なくちゃあかんぜよ」
「もうひとつ問題があるっぺ。
HideAdでbannerViewを隠す前にデストローイ!してるべや。
bannerViewを隠してからデストローイ!してもいいけど、
べつにデストローイ!する必要ねぇんじゃね?」
・・・つまり、5行目にstaticを付けなさい、
private static BannerView bannerView;
あとHideAdの中のDestroyはいらないよ、
ってことじゃね?
(補足)RequestBannerメソッドで、毎回bannerViewインスタンスをCreateしちゃってるから
毎回Createしないで、bannerViewをstaticにして、インスタンス作成済みなら作成済みのインスタンスを使いなさい、
ってことだな 学術巨大掲示板群: アルファ・ラボ
ttp://x0000.net
物理学 化学 数学 生物学 天文学 地理地学
IT 電子 工学 国語 方言 言語学 など
PS 虫は宇宙人だよ ttp://x0000.net スクリプトを書く時に使わないusingとかモノビヘイビアとかって皆さん消してますか?
消さないとどの様な弊害があるのでしょうか? >>106
そんな機能あるんですか?
こちらはVS使ってますが使われてないusingはグレーアウトしてる感じです。
モノビヘイビアはコンポーネントを使わなければ消しても問題無いんでしたっけ・・・。
よく解説動画などで使わないので消しましょうみたいな流れがあるので読み込み速度等に影響するのかな?と思いまして。 使わない部分はコンパイラが勝手に無視してくれるので残してようが問題ない。
単にソースが長ったらしくなって読みにくく鳴るから消そうねってだけ。 >>107
VSだけど拡張機能いっぱい入れてるから正確にどれが作用してるかわからんけど
保存時にコード自動フォーマットしてくれる時に消えてるからその辺 パソコンのメモリって8GBでも足りますか
unity動かすためにはこれぐらいで十分ですかね? 最低16ですか
できれば中古で買いたいんですがそうそうないですよね Macのbookシリーズじゃなきゃ、後で差し替え。 いや、unityは大きくなり過ぎてるから足りない。
特にアセットを数個入れるだけでギガ単位でプロジェクト容量が増えてく。 そりゃあ動くよ当然
快適に動かすにはほしいという話
いまメモリ安いし 質問です
2次配列 INT型 (Y3,X10) を宣言したとして
Y0 = {1,2,3,4,5,6,7,8,9,0}
Y1 = {4,5,6,2,3,4,6,7,8,0}
Y2 = {4,2,3,4,5,6,2,8,9,0}
みたいにY軸にまとめて数値を入れたいのですが
どういうふうに記述すればいいですか? 紐状のオーラを体に巻き付けて動きをアシストさせて、身体機能を向上させる、
みたいな演出をしたいのですが、パーティクルで可能でしょうか?
それともBrenderで作るべきでしょうか
紐を巻き付けるという演出上、頂点数がすごいことになるのでそれにさらにアニメーションをつけるとかなり重くなりそうなので
何かもっと軽く作る方法はないものかと 当たり判定の際、相手のパラメータをGetComponentせずに参照するやり方を教えて下さい。
■前提
攻撃側と防御側でコライダーが接触した際、攻撃側の攻撃力を参照して、防御側の防御力と差し引き、防御側のHPを減らしたいです。
コライダーの検知は防御側の当たり判定をつけた子オブジェクトにアタッチしたスクリプトでOnTriggerしています。
防御側のパラメータは、Startで親のパラメータをキャッシュできるのですが、攻撃側のパラメータは都度誰に攻撃されたか変わるので、
collisin..gameObject.GetComponentで相手のスクリプトを取得しています。
しかしGetComponentは重いので接触の度に行うのはパフォーマンスに不安があります。
小ダメージを連続多段ヒットさせる攻撃などは危ない臭いがしています。
しかし、OnTrigger内で相手のパラメータを参照する方法を調べても、GetComponent以外が中々見つからず困っています。 接触時だけなら重くないはずですが。
そうでなければ、全て管理するしかないかと。 ゲームオブジェクトとコンポーネントを紐付けたディクショナリ作って
呼び出し時はそこからコンポーネントを取得するとか 解像度によってPostProcessingのBloomがかなり見た目変わりますけど、皆さんどうやって対処してますか? RPGのスキルの説明文やカードゲームのカードの効果のテキスト部分などは皆さんどうやって管理してますか?
一つ一つをプレハブ化して無理やりやる事も出来るのですが、もう少しスマートな方法が無いものかと模索しています。 rigidbody2dで水泳の蹴伸びみたいな反力を再現したいのですがうまく跳ねてくれません
どうすれば再現できますかね。。。 現在どうなっているのか、そこからどうしたいのかをもっと詳しく書かなきゃ答えられるはずなかろうにw >>129
例えば説明文が「敵に5ダメージ」だとして、
5の部分を変数にしてバフ等の効果によって変更可能にしたい場合どう管理すれば良いのかが思いつきません。
今はひとつひとつを関数にして表示しています。
public string Attack(int playerAttack)
{
var text = $"敵に{playerAttack}ダメージ";
}
こんな関数をたくさん書いたクラスから呼び出してtextに代入する感じです。
理想としては、ScriptableObjectにstring Descriptionを追加してインスペクターに「$"敵に{playerAttack}ダメージ";」の様に書き込めると非常に楽なのですが、記号なども含めてそのまま表示されてしまいました。
インスペクターのフォーム内で変数を使用する方法はあるのでしょうか?
この様に変化するテキストを管理したい場合もエクセルは向いているのでしょうか? >>130
物理挙動の話なら的外れかもしれませんが、
ttps://qiita.com/ryosebach/items/5bd90d4b464b9059f35d
ttps://qiita.com/pixelflag/items/e5ddf0160781170b671b
アニメーションの緩急はEasingと言うみたいです。
解決のヒントになれば良いですが。 質問です
カメラを矢印キーで上下に動くようにしたいのですが…
下のスクリプトにtransform.Translate(0,1f,0)のように書き足してみたのですが、カメラが1f上を写すだけで移動しませんでした。
2Dです。
public GameObject Player;
void Update()
{
Vector3 PlayerPos = Player.transform.position;
transform.position=new Vector3(PlayerPos.x,0,-10);
} >>135
カメラのスクリプトです
このスクリプトだとプレイヤーのx軸を追従するようになってます >>136
なら、合ってるよ。
キャラの座標を毎回カメラに入れてるでしょ。 いや違うだろw
カメラを十字キーで上下だぞ
x座標をプレイヤーポジションに合わせているだけで
入力すらとってないじゃないか よくわかんないから
きちんと書いてくれないか?
x軸はいいからy軸をどうしているのか >>138
一応
if(Input.GetKey(KeyCode.UpArrow))
{
transform.Translate(0,1f,0)
}
のような形でキー入力は入れてみたんですが、これだと上キーを押した時にカメラが1フレーム上に移動するだけでした… >>139
プレイヤーをジャンプさせたときに一緒にカメラが移動してしまうので0にしています
0のままだと動かないそうですが、どう変えればいいのかわからず… 毎フレームy座標が0に戻ってるのでは?
yもプレイヤーに合わせるからなるんじゃないのかな
transform.position.xでx座標だけプレイヤーのx座標にしたらどうだ? ありがとうございます
transform.position.xはどこに入れるのが正しいんでしょうか…
いろいろと試してみたのですがことごとくエラーを吐かれてしまいまして >>142
これやると何故かエラー出るんだよなぁ
var x = Player.transform.position.x;
var y = transform.position.y;
if(Input.GetKey(KeyCode.UpArrow))
y+=1;
else if(Input.GetKey(KeyCode.DownArrow))
y-=1;
transform.position = new Vector3(x,y,-10);
これで >>144
ああああああできました!!
ありがとうございます!! simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0 rigidbodyにおいて、質量(密度?)を不均一にしたい(おきあがりこぼしのように一部は重く、一部は軽いというような)のですがやり方を御教授頂けないでしょうか。 フリーズローテーションとかじゃダメな気がするので
blender等でならオブジェクトのピボット中心点を移動できる
でもrigidbodyをつけるなら形の通りに動くのだろうか
マトリョーシカ(ロシアの人形ね)みたいな卵型を使うとして
オブジェクトを5分割とかにしてみて別々(もとは同じ)のオブジェクトを装備しているような感じにして
fbxで一緒にくっつけて書き出して
メッシュコライダー入れてリジットボディでmassでそれぞれの部位に重さを設定すれば
いけるんじゃないか
物理でバラバラにはならないと思うけどなるなら
blender等で全選択して押し出しでオブジェクトの膜を作って
バラバラにならないように外側を固めるとか
>>148さんが言うような機能は
たしかにblenderとかではウェイトペイントという機能はあるが
あれはボーンにどのくらい追従するかを設定するだけだから違う
無知ですまん UNITYの教科書って本には、
プレファブ作ってスクリプトから生成するとき
GameObject obj=Instantiate(prefab) as GameObject;
と記述するとあるのですが、
これの「as GameObject」付けなくても生成してくれるんですが、
省略してもいいんでしょうか? staticのシングルトンで作ったDataクラスに GameObject型のenemy1を宣言し、
別のスクリプトからプレハブをロードしてインスタンスしたところ、シーン上ではプレハブが表示されたもののなぜかnullエラーが出てしまいます。
同じプレハブをstaticでない通常の変数で宣言してインスタンスするとエラーは出ないのですが何が原因でしょうか?
//========■シングルトンのDataクラス↓
public class Data : MonoBehaviour
{
public static Data btdata = null;
private void Awake()
{
if (btdata == null)
{
btdata = this;
DontDestroyOnLoad(this.gameObject);
}
else
{
Destroy(this.gameObject);
}
}
public GameObject enemy1 = null;
//========■別のスクリプト↓
GameObject obj = (GameObject)Resources.Load("Enemy_Chinpira");
Data.btdata.enemy1 = (GameObject)Instantiate(obj,new Vector3(0.0f, 0.0f, 0.0f),Quaternion.identity); ←NULLエラーは出る
GameObject hoge = (GameObject)Instantiate(obj, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.identity); ←こっちだとエラーは起きなかった >>151
シングルトンが不完全
どこよりも先にこいつのawakeが実行されるわけではないのでは? >>151
別のスクリプトのawakeで実行してるとか
※個人の感想
個人的には複数シーンを使うときこのやり方は俺の好みではない >>152
Awake使ってるの今のところここしかないです… >>154
このシングルトンのオブジェクトを
このシングルトンを使うすべてのシーンに
一つ置いてますか?
このシングルトンのawakeが実行されていないと思われるのでスクリプトがあるだけでこのシングルトンのゲームオブジェクトが存在しないのではないかと思う >>156
すみません。テストをしているシーン上にDataをアタッチしたオブジェクトを置かれていませんでした…
シーンに配置したところエラーが出なくなりました。ご指摘ありがとうございます! すいませんもう一つだけ教えてください。ついさっきDataがシーン上にない時に試行錯誤しているうち
シングルトンの public GameObject enemy1 = null; を public staticに変えて、
Data.btdata.enemy1 = ... の部分を Data.enemy1 = ... という記述に変えたことでもエラーが出なくなった事に気づいたのですが、
これは普通のpublicだとbtdataをシーン上に配置してインスタンスしないとアクセスできないけど、
public static だとインスタンス無しでアクセスできる、ということなのでしょうか? >>158
正確にどういうスクリプトになったのか曖昧なので俺にはわからないのでわかりません
staticつけたものはインスタンスとは独立してるからね
インスタンスがいくつでも0個でもstaticは一つ存在する
でもシングルトンのインスタンスを一つ作ることになるけどね
シングルトンの中身の全てにstaticをつけるとかしないから >>159
ありがとうございます。シングルトンの解説をしているサイトでメンバ変数にstaticがあるものとないものがあるのはなんでだろうと思ってたんですが、少し理解できました。 >>149
unity上で部品のように固定する感じですか、ありがとうございます☺ ゲームオブジェクトのプレハブを動的に切り替える事はできないのでしょうか?
共有のゲームオブジェクトを一つ作り、その中に複数のprefabをアタッチしておき、ゲームの状況に応じてprefabを切り替える…ということをやりたいのですが、上手くいきません。
instantiateをするとクローンの別オブジェクトは生成されるのですが、別オブジェクト生成ではなく自分自身のprefabを切り替えたいです >>162
2つ既にくっついてるなら、
gameObject.setactive(false)
で、消しては? >>163
SetActiveの存在をすっかり忘れてました…ありがとうございます アニメーションクリップを作るときに、
imageをまとめてSceneビューにドラッグ&ドロップして作るときと
アニメーションウィンドウに画像をドラッグ&ドロップして作るときとで
アニメーションの速度が全然違うのですが、どうしてでしょうか。
タイムラインの秒数は同じはずなのに速度が全然違います。 3Dのゲームなのですが、避雷針のようなものを設置して、それを中心に一定範囲内で発動した魔法はすべて避雷針に向かってしまい、
実質魔法が無効化される、というシステムを考えています
スフィアコライダを使ってその範囲を作り、接触した魔法を中央の避雷針に飛ぶように軌道修正させようとしましたが、
魔法自体何かに接触すると効果を発動して消えるものであるため、スフィアコライダに接触した時点で消えてしまいました
魔法を無力化する効果自体はこれでも十分ではあるのですが、できれば軌道が変わることで意外な場所に着弾したり、
魔法を受け続けた避雷針が破裂するか何かして周囲に被害をもたらしたりとかしてみたいので、消えてほしくはありません
何か良い方法はありませんでしょうか 無料版unityで作ったアプリをGoogleplayに出して遊んでみたらmade with unityのロゴが出なくなったんですが仕様ですか? >>103
ありがとうございます。
WebViewを表示したときにAdMobを消して
WebViewを消したときにAdMobがまた出るようにしたくて、
まずAdMobのスクリプトで
public static BannerView bannerView;
にして
public void HideBanner()
{
bannerView.Hide();
}
public void ShowBanner()
{
bannerView.Show();
}
を追加して、
WebViewを出すためのボタンを押したときのスクリプトに
AdMob.bannerView.Hide();
を書いたら
WebViewを出すときにAdMobを消すことができました。
(続きます) (続き)
そして、以下のWebViewのスクリプトに
-----------------------------------------------------
void Start()
{
〜 (略)WebViewを表示させる部分 〜
webView.OnShouldClose += (view) =>
{
webView = null;
return true;
};
webView.OnMessageReceived += (view, message) => {
if (message.Path.Equals("close"))
{
Destroy(webView);
webView = null;
}
};
}
void Restart()
{
if (webView != null)
{
webView.Reload();
}
}
-----------------------------------------------------
(続きます) (続き)
自分で色々試してこれを追加すると、
void ShowBanner()
{
if (webView == null)
{
AdMob.bannerView.Show();
}
}
WebViewをバックボタンで消すときにAdMobを再表示させることができたのですが、
もう一度WebViewを出すと、AdMobが消えずに残ったままになってしまいます。
webView == nullがずっと影響してしまうのでしょうか
どうすればいいのか教えてください。 >>172は間違いでした。訂正です。
このUpdateの方を追加すると、
void Update()
{
if (webView == null)
{
AdMob.bannerView.Show();
}
}
>>172のような状態になります。 if (Random.Range(1, 4) == 1 && 2)
{
Debug.Log("三分の二で入る");
}
と書くと
エラー CS0019 演算子 '&&' を 'bool' と 'int' 型のオペランドに適用することはできません
というエラーが出てしまうのですが、これと同じような処理をしたい場合どのように記述すればいいのでしょうか。 >>174
if (Random.Range(1, 4) <3) simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0 キーを押したら平行ライトの角度が変えられるスクリプトで質問したいです。
元のライトの角度が(50,-30,0)とかになっていてたとします。
リセットキーをつけようとQuaternion.identityをつかうと0,0,0
になってしまいます。
もとの(50,-30,0)にもどす(リセット)するにはどうしたらいいでしょうか?
よろしくお願いいたします。
-------------------------------
if (Input.GetKey(KeyCode.U))
{
transform.Rotate(50 * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.I))
{
transform.Rotate(-50 * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.O))
{
transform.Rotate(0, -50 * Time.deltaTime,0);
}
if (Input.GetKey(KeyCode.P))
{
transform.Rotate(0, 50 * Time.deltaTime,0 );
}
if (Input.GetKey(KeyCode.L))
{
transform.rotation = Quaternion.identity;
} >>178
俺は初心者なので詳しいことは知らんが
角度って難しいね
回転(相対変化)じゃなくて角度を指定したいとか
検索しても話がかみ合わない >>178
平行ライトは知らんので使えるか知らんが
eulerAnglesとかlocalEulerAngles ありがとうございます。
いろいろ試して
最後のリセットさせようとする文を
transform.rotation = Quaternion.Euler(50, -30, 0);
にしました。
初期値を自分で書いてそれに戻してるだけですが機能しました。
正しいやり方ではないと思いますが。 >>181
リセット時に向く方向を変数にして、
インスペクタから指定できるようにするとか、
start関数内で現在の向きを変数に格納しておく、
とかにすると使い勝手がいいかもしれません。 位置とスケールは簡単なのに角度になると急に面倒に…
0〜180、0〜 -180、0〜360とかぁ〜 他オブジェクトにつけたスクリプトを参照できるようなスクリプトを書きたいのですがどのように書けばいいんでしょうか…
プレイヤーキャラのスクリプトから向きの情報を得て弾の進行方向を変えるような感じをイメージしているんですが。 >>184
以前自分も全く同じ疑問持ちました
自分的にこのサイトが一番わかりやすかったです
https://htsuda.net/archives/1702 animatorについてなんだけど、3dモデルに他のキャラのアニメーション付けてもちゃんと動いてくれるの?
VRMとかにモーションつける時とか違うキャラの付けてもちゃんと動いてるのが不思議で >>186
ボーンがUnityの指定しているHumanoidの仕様で、ある程度ちゃんとつけられた
キャラなら他から持ってきた動きでも動いてくれると思います。 Youtubeの画面下の横長動画プレイヤーみたいなのを作ろうとしているのですが、うまくいきません。
1.空オブジェクト(A)を作成。各種UI Buttonをその子として入れる。
2.別途UI Panelオブジェクト(B)を作成。Aには入れない。
3.Bに「イベントトリガー」コンポーネントをつけ、Pointer EnterでAのSetActiveをONに。Pointer ExitでOFFに。
4.BをAよりも画面手前に置くと、Aのボタンが反応しなくなる
5.BをAよりも画面奥に置くと、AのボタンにマウスーオーバーしたときABともに高速点滅する >>188自己解決しました。
BをAに被せず、3のオンオフを逆にしたらOKでした >>184です
参照する方法は分かったのですが、弾を発射した後にプレイヤーの向きを変えるとそれに伴って弾の進行方向まで変わってしまうようになりました…
(右に発射したあと左を向くと弾の方向も左に変わってしまう…というような感じです)
発射した時点で進行方向を固定する関数などあれば教えていただきたいです。
>>185
一度は思いつくものの形にするには時間かかりますよね…
レスありがとうございます😊 >>190
角度取得をstartじゃなく、updateにでもいれてるんだろうね。 ゲームにはよくパワーアップやパワーダウンの効果をもつバフ、デバフがあると思います
こういったものというのは、先に計算を行って置き、実数を変更しておくのが一般的なのでしょうか
それとも、効果を発揮する状況になったとき(たとえば攻撃時、攻撃力の値が必要になったとき)に毎回算出するのが一般的なのでしょうか
前者の場合だと計算は完了しているため後は値を参照すればパワーアップ状態での行動に反映でき、負荷が軽くなるとは思うのですが、
パブ、デバフの効果切れの際に、特に乗算等で計算していた場合、パワーアップ中にレベルアップや装備変更などで元の値が変化してしまうと
効果切れの処理のときに元の値が狂ってしまうバグが発生してしまいます
後者の場合だと前述のバグは発生しにくいとは思いますが、攻撃のたびにパワーアップ分を計算しなくてはならず、
簡単な計算とはいえ毎回負荷がかかってしまいます
今作っているのは3Dでリアルタイムで動くRPGのようなもので将来オンライン化を目指していますが、
バグの回避と拡張性の問題から後者の手段を取ろうと思っているのですが、処理負荷がどう響くのか分かりません
とりあえず一般的な手法ならそれなりに実績もあるだろうということで、どちらが一般的でしょうか >>191
Startに入れて実行したら弾が進まなくなりました…
なぜなんでしょうか… >>192
前者でも元の値が変わったときに再計算をはさんでおけばバグは起きないだろうし、攻撃のたびに単純な計算するくらいの負担を気にする必要があるとも思えないです。
攻撃速度が1秒間に100回で複数の敵に多段ヒットしまくる様な特殊なゲームでなければですが。
>>193
方向の決定をStartでして、その方向にupdateで進めればいいんじゃない? scriptを用いて指定オブジェクトの色をGetComponent<Image>().material.color で変更しようとしたところ
指定したオブジェクト以外の色も変更されてしまいます。
指定したオブジェクトのみ変更させたい場合どうしたらよいでしょうか
Default UI Material というのが指定した色になっていました。 >>195
確か、マテリアルカラーはパレットだから、ほかのオブジェクトでも使ってたら変わったよ。
それが嫌なら専用のマテリアルを作るのが1番かな。 返答ありがとうございます。
指定したImageオブジェクト(ほかのオブジェクトも)のmaterialを設定していませんでした。
指定オブジェクトのmaterialを「Sprites-Default」に設定したところ
指定したオブジェクトのみ色を変えることができました。ありがとうございます。 >>196
GameObject Player;
SpriteRenderer Renderer;
void Update()
{
bool left =Renderer.flipX //左向きのときtrue
if(left==true)
{
transform.Translate(-0.5f,0,0);
}
else
{
transform.Translate(0.5f,0,0);
}
}
というスクリプトをUpdateに入れています
Update関数の中にプレイヤーの向きの情報が入っているので、弾が常にそれに連動してしまうのはわかるんですが… unity(2D)って、ひょっとしてそれほど画像の大きさは気にしなくていいですか?
カメラサイズとかで調整して、カメラで見えたものがそのまま映像として出る感じ? >>199
leftをメンバ変数にしてstart()で向きを代入すればいい >>201
public bool left を文頭に付け加えればメンバ変数になりますか?
それと向きの代入はどのように書けばいいのでしょうか? >>202
そんで、left=render…をスタートにね。 インスペクターの変数表示を折りたたみしたくて、
「InspectorFoldoutGroup」というのを見つけたのですが導入方法がわかりません。
やり方教えてほしいです。 >>204
Homebrewフォルダを自分のプロジェクトのAssetsに置く
折りたたみを使いたいスクリプトの一番上の部分に
using Pixeye.Unity;
を追加
あとは添付されてる
README.md
見ればわかるはず。
.mdファイルが開けなかったらブラウザにドラッグ&ドロップすれば見れる GameObject Player;
SpriteRenderer Renderer;
public float x;
public bool left;
void Start()
{
left = Renderer.flipX;
Player = GameObject.Find("Player");
Renderer = Player.GetComponent<SpriteRenderer>();
if (left == true)
{
x = -0.5f;
}
else
{
x = 0.5f;
}
void Update()
{
transform.Translate(x, 0, 0);
}
とにかく手探りで書いてみました。
実行したところ、やはり弾が生成された地点で止まってしまいます。
どこを直せばいいのでしょうか… >>206
xの値変わって無くないですか?
方向はStart()で決めてるんでその後のxの加算減算はUpdate()内で行えば動きませんか? >>205
おかげさまで導入することができました
ちなみに自分がひっかかってたのはダウンロードの仕方からわからなかったのですが
サイトの Clone or download → Download ZIP から落とせました。
たぶんダウンロード出来てたとしても導入でつまづいてたと思うので(英語わからない)
助かりました ありがとうございます! >>207
Startでxに代入している-0.5fや0.5fは方向を決めるだけのものなんですか?
であればUpdate内にxと書いただけでは動かないのは納得です… >>206
これでどうだ
GameObject Player;
SpriteRenderer Renderer;
public float x;
public bool left;
void Start()
{
Player = GameObject.Find("Player");
Renderer = Player.GetComponent<SpriteRenderer>();
}
void Update()
{
left = Renderer.flipX;
if (left == true)
{
x = -0.5f;
}
else
{
x = 0.5f;
}
transform.Translate(x, 0, 0);
}
} >>211
そうなんです!
これだとプレイヤーの向きを変えるたびに弾の方向も変わってしまうんです…
わざわざ書いてくださってありがとうございます >>212
206で動かない?
そもそもこのスクリプトは弾についてますか?
あとxの値が小さすぎるかもしれませんので、おおきくするとか。 >>209
あ、分かった二ヶ所です
まずStart()にある
if(left == true)
…
をUpdate()へ移動
んで加算減算ですが
x = -0.5f
ではなく
x -= 0.5fとx += 0.5f
これならどうだっ!? >>206
GetComponentする前にRendererを参照してるからぬるぽ出てるんじゃないの?
Renderer=の部分をleft=の上に移動してみては >>212
https://imgur.com/lOxmncE
こういう感じ?弾はプレハブをinstantiateで生成してるでいいのか?
GameObject Player;
SpriteRenderer Renderer;
public float x;
public bool left;
void Start()
{
Player = GameObject.Find("Player");
Renderer = Player.GetComponent<SpriteRenderer>();
left = Renderer.flipX;
}
void Update()
{
if (left == true)
{
x = -0.05f;
}
else
{
x = 0.05f;
}
transform.Translate(x, 0, 0);
} >>213
このスクリプトは弾についてるやつです
これだと生成された場所で弾が止まってしまいます…
transform.Translate(0.5f,0,0)でいい感じだったので数値はこれでいいはずなんですが…。 >>214
>>216
お二方ともご丁寧にありがとうございます。
そうですね。弾はInstntiateで生成してます。
試してみます。
>>215
謎エラーが出てたのはこれが原因かもしれません…
完全に見落としてました、ありがとうございます >>217
ほな違うかー。それやと>>206で動くはずやもんな。
なんやろなー、一度update内をtranslate(1,0,0)だけにしてまず動くか試してみぃ。 >>216
この方のスクリプトで試したところ、理想通りの動きをしてくれるようになりました
>>214さんのスクリプトも試してみようと思います
数日にわたり本当にありがとうございました!
しっかり勉強します…! >>220
あ〜ごめんなさいtranslateですね、少し勘違いしてたのでお気になさらず
私もまだまだ勉強中なのでお互い頑張りましょう! androidでrun and buildしようとしてgradleでエラーが出る
gradleのアップデートしようにもexportの仕方がわかんねえ… 使い方がイマイチわからないところがあるので質問させてください
AオブジェクトにスクリプトAを接続
スクリプトAでパブリックGameObject Bを宣言
すると
AオブジェクトのインスペクタにGameObject Bの項目が追加されますが、
スクリプトAのインスペクタにもGameObject Bの項目が追加されています。
AオブジェクトのインスペクタのGameObject Bには他のオブジェクトをドラッグドロップで
接続できますが、
スクリプトAのインスペクタのGameObject Bには同じように接続できません。
None(Game Object)となっています。
特に問題なく想定したとおり動いてるのでいいのですがちょっとだけ気になります。
スクリプトAのインスペクタにはどんな意味があるのでしょうか? >>223
スクリプトAのインスペクタ
というのは、プロジェクトタブ内でスクリプトを選択したときに表示されるもののことでしょうか?
であれば、設定できるのはプロジェクト内にあるゲームオブジェクトだけです。
プロジェクト内にあるプレハブを初期値として持たせておきたい場合はそこで設定するといいと思います。 >>224
そうです Projectタブ内のスクリプト選択時に表示されるものです
おっしゃるとおりAssets内のプレファブからならドラッグドロップで登録できました
でもこれって
ゲームオブジェクト選択時に表示されるインスペクタのほうからでもプレファブ登録ってできますよね?
初期値に違いが出るんでしょうか? スクリプトをアタッチした時点での初期値、という意味です。 >>226
すみません 理解力が足りなくてよくわかりません・・・
どういう風な使い方ができるか具体例とかあれば教えていただけないでしょうか? ただ単純に手間を省ける場合があるってだけです。
例えばプレハブに8割の確率で同じものを使う、という場合で、
100回スクリプトをアタッチしたとします。
初期値が空なら、100回プレハブを設定しなければなりません。
初期値に80回使うプレハブがすでに設定済みなら、
設定するのは20回ですみます。 プレハブについての質問です。
すでに存在するオブジェクトに子としてプレハブを複製しようとしたときの座標がうまく設定できません。
スクリプトではこんな感じ記載しています
------------
ParentObject = GameObject.Find("ParentCanvas"); //すでに用意しているキャンパス
var parent = ParentObject.transform;
// プレハブをGameObject型で取得
GameObject obj = (GameObject)Resources.Load("Prefab");
// プレハブを元に、インスタンスを生成、
Instantiate(obj, new Vector3(1.0f, 1.0f, 0.0f);, Quaternion.identity, parent);
//ローカルポジションの設定
obj.transform.localPosition = new Vector3(100.0f, 100.0f, 0.0f);
----------
結果として子としてプレハブは複製できていますが、座標がローカルではなくワールド座標のほぼ原点に生成されてしまいます。
親のローカル座標に設定するにはどうしたらよいでしょうか?
InstantiateのVectorをローカル座標として設定したい状態です。 >>230
最後のlocal posで、100じゃなくて、0.0.0でいいんじ「ないの? >>231
最後のlocalPosition の位置に設定をしたいのですがワールド座標の原点に設定されてしまう状態です >>230
Instantiate(obj, parent.position + new Vector3(1.0f, 1.0f, 0.0f);, Quaternion.identity, parent); >>228
説明で全くピンとこなかったのですが
実際UNITYで試してみて言葉の意味がようやく理解できました
「スクリプトをアタッチした時点での初期値」
ほんとそのとおりですね 複製するときに使えそうです
ありがとうございます! >>225
https://i.gyazo.com/207b420398965fd9452cfd022b133773.png
まずこれがオブジェクトにスクリプトをアタッチし、public変数に設定した例
https://i.gyazo.com/f688367c978ac3282ae36a41985ce9f7.png
こちらがProject欄にあるスクリプトのPublic変数、ここへは「シーン上」のオブジェクトは設定できない
https://i.gyazo.com/0294932ec2ec31d71627a8f9e8bbaa0b.png
こちらが同じスクリプトにPrefabを設定した例、Prefabなら設定できる
まずpublic変数は外部からの設定が出来る変数で、シーンのobjectにアタッチすれば、インスペクタで設定できる。
prefabというのは特殊なオブジェクト。これはシーン上に即反映できるものでシーンに無いスクリプトにもアタッチできる。
という事。
違いは、シーン上にあるものか、そうでないか。シーン上のobjectはProject欄には置けないですうよね?
それがPrefabという事。Prefabの詳細については、公式の説明参照で。
>>230
公式の説明見ると分かると思うけど
https://docs.unity3d.com/ja/current/ScriptReference/Object.Instantiate.html
(2番目の例が分かりやすい)
InstantiateはGameObjectを返すので、位置など設定する場合には、そのオブジェクトを指定する
GameObject obj = (GameObject)Resources.Load("Prefab");
Instantiate(obj, new Vector3(1.0f, 1.0f, 0.0f);, Quaternion.identity, parent);
obj.transform.localPosition = new Vector3(100.0f, 100.0f, 0.0f);
この場合、「obj 」はResourcesにあるObjectで、Instantiateで生成した物ではないです
だからobj.transform.localPositionをしても意味が無い。
公式の例のように返りを指定して
clone = Instantiate(projectile, transform.position, transform.rotation);
それの値をいじります。
clone.velocity = transfor… >>235
詳しい解説ありがとうございます!
参考にして理解を深めたいと思います >>233
>>235
返答ありがとうございます。
ローカル座標への設定ができました。ありがとうございます。 サイズが100メガ越えちゃってアップロードできないので
一部のシーンを自サーバに置こうと思うんですが
どうやればいいのでしょうか 無料のFBX Exporterって無くなったんですか? ゲーム作ってる場合じゃない!
関数名には、スペースと頭を数字にしてはいけないというのを知ったのですが、
「-」短いハイフンを含めても問題ないのでしょうか?
後で不具合が起こることはないでしょうか? Unityが壊れた
AndroidのBild settingのplayerの項目が表示されなくなった
最初は表示されていたのに項目の入力中におかしくなってそれっきり
心当たりがあるとすれば入力中にIMEの入力切り替えがおかしくなって半角入力できなくなっていたことくらい
別のプロジェクトファイルを開いても同じ不具合と同じエラーメッセージが出るからunityのファイルが壊れたのか
一旦アンインストールしてから入れ直した方がいいのかなあ
それとも新バージョンを上書きしていいのか
検索したらELT版?インストールで解決したという話が出てきたけど
二本同時に完成する直前にこれだよ泣きそう 基本的な操作がわからないのでしつもんさせてください
関数とかif文とかのカッコ }
がよく変な位置に行ってしまいます。(うっかり無駄にエンター押したりしてしまう)
DELETEキー長押しでカーソル位置まで動かして戻してるのですが
スマートに戻す方法とかもしありましたら教えてくださいm(_ _)m アニメーションクリップが複数あるオブジェクトを非表示から表示に切り替えた時に
特定のアニメーションクリップから始めることはスクリプトで出来るでしょうか? >>246
変な位置って具体的にどうなってて理想はどういう風にしたいの
visual studio使ってるんだったら設定いじるかフォーマットの拡張好きなの何か入れるとか 具体的に言うとよくこんな感じになってしまいます
if(a==0){ 処理
}
この2パターンが理想です(場合によって使い分けています)
if(a==0){ 処理 }
if(a==1){
処理
}
設定どこをいじればいいんでしょうか? 間違えました
この2パターンが理想です(場合によって使い分けています)
if(a==0){ 処理 }
if(a==1){
スペース 処理
スペース } プロジェクト内のフォルダを誤って消してしまい、ゴミ箱から元に戻してもscriptがエラーから戻らない場合は復元出来ないのでしょうか……? 拙い文ですみません、試してみて?という感じのアドバイスで良いのでお願いします… >>251
裏で作ってるファイルがあるから、それだけでは何とも。エラーをみながらコツコツと直すしかない。
私だけかもしれんが。 1日の作業が終わったらプロジェクトフォルダごとバックアップ
NASなんかに保存するのが最高だけど
下手すると年単位の苦労が消し飛ぶから考えた方が良いよ 自分も一日の終わりにプロジェクトフォルダごとバックアップしてる
Zip圧縮したファイル名の末尾に日付を入れて一定期間保存
大きな変更を加える直前のフォルダは長期保管してる プレハブについての質問です
1つのプレハブに↓のようなスクリプトをセットして複製し動かそうとすると
複製したオブジェクトが1つしか動いてくれません
-------
public class prefabMoveScript : MonoBehaviour {
public static GameObject prefabObject;
public static int iNow, jNow;
public static void move()
{
//位置を乱数で変更
int iNum += Random.Range(-1, 1);
int jNum += Random.Range(-1, 1);
prefabObject.transform.localPosition = new Vector3(iNow , jNow , 0.0f);
}
// Use this for initialization
void Start () {
prefabObject = this.gameObject;
}
}
------
複製したプレハブそれぞれを別々の乱数で動作させたいのですがどのようにしたら良いでしょうか すいません一部コードが間違っていました
-------
public class prefabMoveScript : MonoBehaviour {
public static GameObject prefabObject;
public static int iNow, jNow;
public static void move()
{
//位置を乱数で変更
int iNum += Random.Range(-1, 1);
int jNum += Random.Range(-1, 1);
prefabObject.transform.localPosition = new Vector3(iNow + iNum , jNow + jNum , 0.0f);
}
// Use this for initialization
void Start () {
prefabObject = this.gameObject;
}
}
------
staticをつけている変数については、別スクリプトで呼び出して値を代入しているため
staticを外すとエラーが出てしまいます。 staticをつけると、その変数は
そのクラスで共通のものになる。
だからこれだと複製したオブジェクト全員が、ある一つのオブジェクトを操作している状態。 staticを理解していない?
staticをつけると、簡単に言えばそのワールドで唯一の変数名になる。だから複数から参照操作はできるが、唯一を2つ存在させたら、どっちを参照するかわからんよね? >>261
>>262
staticについて理解できていませんでした。 >>255
>>256
>>257
皆さんありがとうございます、これを教訓にそうすることにします…… >>264
わざわざソースまでありがとうございます! https://youtu.be/clB_Q-4N2mM
アニメーションクリップに効果音を付けて4種類のSEの中からランダムで音が出るようにしているのですが、
二回続けて同じ音が出ないようにする方法はないでしょうか。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
public AudioClip[] _SE; //SEが4個入っています。
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, 4);
audioSourse.PlayOneShot(_SE[a]);
}
}
このスクリプトを音を鳴らすアニメクリップが付いたオブジェクトにアタッチしています。
二回続けて同じ音が出ないようにする方法があったら教えてください。
https://thuploader.orz.hm/miniup/?mode=dl&id=7354 プロジェクトファイル >>267
色んな方法があると思いますが、
再生する度に再生したSEを除外し、除外されていたSEが存在すれば戻すという処理を入れるのはどうですか?
ランダムのレンジにはLengthやCountが使えますので実装自体は数行済むと思います。
配列をリストにした方が簡単だと思います。 >>268の方法は難しそうだったので
>>269の方法で試してみました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
//public AudioClip[] _SE;//配列
public List<AudioClip> _SE;//リスト型に変更
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, _SE.Count);//_SE.Count リストの中の要素の個数
audioSourse.PlayOneShot(_SE[a]);
_SE.RemoveAt(a); //一度鳴ったSEを削除
}
}
SEの配列を、リスト型に変更して、一度なったSEを削除するところまでは出来たのですが
消したリストを次のSEを鳴らすときに元に戻すやり方が分かりませんでした。
どうすれば消したリストを元に戻すことができるでしょうか。 俺なら前回の覚えておいて
乱数が同じものだったら+1
わずかに乱数に偏りが起こるけど 乱数が選んだものをリストから抜いてリストの最後に追加しておくとか
乱数の範囲は要素数-1で最後の要素(前回選んだもの)を避ける
初回は必ずリストの最後が選ばれないことになるけど 横から失礼します
特定のAudioClipが再生中かどうかを検出するとかってできますか?
例)
if(Audioclip(ジャンプ音)が再生中){ 処理 }
みたいなことがやりたいのですが 乱数記憶用の変数を用意
初期値は999などの有り得ない数
または一番目に鳴らしたくない音と同じ数
ランダムで出した乱数を変数と比較
もし同じ数字なら+1または-1して処理
(このスクリプトだと3の場合のみ-1)
また乱数(または処理後の数値)を変数に入れる
自分ならこれにするけど何せ初心者なので
もっとスマートなやり方があるならそっちで >>273の再生したSEをリストの最後に追加してランダムのレンジに含めないがスマートで実用的かもしれませんね。
+1などで処理すると結局順番に再生されるだけでランダムにならないから質問者の意図する挙動とは違ってしまうんじゃないでしょうか? >>276
乱数が前回と同じ値だったら
1足して剰余でオーバーラン回避だよ
剰余のこと説明不足だった 皆さんから助言を頂いて有難うございました。
>>273の方のやり方で、ずっと試していました。先ほどエラーが全部消えてやっと動くようになりました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
public List<AudioClip> _SE;//リスト型 4つのSE
AudioClip DeleteClip; //選ばれて消えたSEを変数に入れる
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, _SE.Count-1);//リストの最後の要素はランダムレンジから外す
audioSourse.PlayOneShot(_SE[a]);//選ばれたSEを鳴らす
AudioClip DeleteClip= _SE[a];//選ばれたSEをDeleteClipの変数に入れる
_SE.RemoveAt(a); //選ばれて鳴ったSEを削除
_SE.Add(DeleteClip); //選ばれて消えたSEをリストの最後に追加
}
}
もしかしたら変な部分があるかもしれませんが、ちゃんと動いているようです。
本当に有難うございました。助かりました。 Unityで2Dゲームを作ろうとしていますが、小さい表示枠と大きい表示枠について教えて下さい。
画像をSceneに配置すると小さい枠の中に置いたものが実行時に表示され、座標はたとえば-2〜+2です。
ヒエラルキーからUIのButtonを配置すると大きい枠の中に置かれ、座標は0-1000などの設定した画面サイズの値になります。
2つの座標系があるようなのですが、Sceneで見ると重なっていないのに実行すると上記の2つ枠は重なって表示されるようです。
なんでこんなことになってるんでしょうか?
両者を混在して使ってると実行環境によってずれが生じそうですが大丈夫なんでしょうか?
また「Unityの教科書 Unity 2019完全対応版」を読みましたが、次に読むと良さそうな本があったら教えて下さい。 >>279
それな
俺はunity初心者
座標面倒
キャンバスにイメージとスプライト混在したり一貫性ないなあ >>279
シーンで見ると大きさが違うのと位置がずれてるのが邪魔で仕方ない
シーンで同じ位置同じ大きさ(見た目のことで座標の数値は違う)にするか
いっそのことシーンでは離れているが実行時に同じにしてみたり
重なってると邪魔なので
キャンバスのインスペクタを弄れば見た目の大きさは揃うよ
座標は-2とかのままがイイみたい
あれはメートルって意味らしい >>279
1冊読んで1本作れたなら、漠然とした指南は必要ないかなぁ。
あとは、ネットやるならオンライン系とか、作りたいものに合わせて選ぶだけだよ。
まだ1本も完成させてないなら、本より作り上げることかな。 >>280-282
やっぱりわかりづらいですよね
作りながら学んでいくしかないですかね
>>283
いま最初の一本を作ってるところです。
とりあえずわかる範囲で動くものを作ってみることにします。 ・シーンにオブジェクトAとBを作る
・Bをプレハブ化
・GetComponentを記したスクリプトをBにアタッチ、そのインスペクタ内でAをアタッチ
・いざ実行すると、後者からAが消えておりnullが入ってる
これはどういうカラクリ?
GetComponentで保持できるのは同一シーン内のオブジェクトだけで、
プレハブは別シーン扱いだから不可ってこと? 初心者すぎる質問で申し訳ない
自分の街の地図データ(OSM)をUnityに取り込みたい
OSM2World(http://osm2world.org/download/)をダウンロードして
以下の記事を参考に頑張っているのだけど、
https://qiita.com/hiroga/items/8f8496af23c3661f4092
使い方wiki(https://wiki.openstreetmap.org/wiki/JA:OSM2World)に書いてあるGUI操作というものが分からずOSM2World を実行できずにいる
ダウンロードした中にアプリケーションらしきファイルはないし、どうやって実行するのか分からない エアプババアこと橋聖子さーん!
Unity 触ったこともないくせにググって出てきたブログの内容をパクってスレに書き込まないでくださーい! 画面をドラッグしたらそれに合わせて
画面中心に置いてあるキューブのオブジェクトが回転するようにしたのですが、
例外的に画面のUI部分をドラッグしても何も起きないようにしたいです。
試しに画面内にボタンを配置してみますと、
ボタン部分をドラッグしてもキューブは回転しませんでした。
ですが、ボタンではなくスクロールビューを配置しますと、
スクロールビュー内で中身をスクロールさせる際に
キューブも回転してしまいます。
これは何が原因なのでしょうか?
スクロールビュー内でスクロールさせても、
キューブは回転しないようにしたいのですが。。。 ローグライクゲームで使われるようなテキストボックスの作り方を教えてください
具体的にはテキストボックスは4行目まで表示可能で
5行以上のテキストは初めに上4行が表示され、時間経過で下4行まで
スライドするようなものです
文字のフォントサイズとスライドの幅の関係がわからず
行数が増えてしまうと文字が見切れてしまうのですが
どうしたらよいでしょうか UIのTextではなくて
GameObjectの子要素として文字や数字を表示したいときどうするのでしょうか TextMeshProとかでできるんじゃないのーー?
(適当) UGUIのイメージをドラッグして移動させたいのですが、
canvasの設定をscreenspace overlayからcameraに変更するとドラッグ中に描画されなくなってしまいます。
パーティクルを前面に表示させるためにcanvasの設定を変えました。
考えられる原因はありますか? >>296
自分の事でしょうか?
練習でトランプを作っていて、初心者なので全てUIで作ってしまいました。
アセットセールで初めて買ったパーティクルをエフェクトとして表示したかったのですが、UIが最前面に来るので表示できませんでした。
自分で調べてcanvasの設定を変えることでパーティクルは表示されたのですが、カードをドラッグすると消えてしまう様になりました。
2Dのゲームを作る時のカードの絵?オブジェクト?というのはどうやって表示させるのが正しいのでしょうか?
いつもcanvasを1つ作って全てその中にUIで作ってしまっています。。 エディタ拡張を使ってゲームオブジェクトの変数をいじってみたのですが、実行してみると、
↓のような感じで、inspector上で直接打ち込んだ数字に戻ってしまいます
https://i.imgur.com/REjqphY.png
どうにか保持する方法はないでしょうか? >>299
俺と似たような現象だな
解決策は知らない >>298
自分も初心者だけど(しかも始めたばかり)
教本のサンプルスクリプトを改変しながら一本作ったところ
2Dの画像はUIから作る他にヒエラルキーに直接ドラッグ&ドロップする方法があってこの方法で作ったゲームオブジェクトはUIから作ったimageとは仕様が違うということがわかった
全く同じスクリプトを関連づけても動作しなかったり
等倍のはずなのに画像の表示サイズが微妙に大きかったり
UIキャンバスに入れると表示されなくなったり
別の教本では2Dオブジェクト→spriteで同じような用途の画像オブジェクトを作ってたからヒエラルキーにドラックドロップするとspriteになるのかも
Collider2Dで他のオブジェクトとの衝突判定を付けたい2D画像はそうやって配置するというところまでは理解できたけどそれ以上はさっぱりわからない
どれが正しいかじゃなくて用途によって使い分けるみたいだけどね 投稿してから思い出したけど
同じ著者の別の教本のアプリではUIから作った2D画像にCollider2Dで衝突判定付けてたなぁ
実際に作ってみたけど問題なく動いたし
違うものだということは把握したけど違いがよくわからない >>295
ドラッグ中のオブジェクトの座標見るとどっか遠いところに行ってるんじゃないの >>301
トランスフォームの違いが一番のポイントかと思いますが、仰る通りそれによってサイズや座標違ったりするのが初心者には辛いですね。
シーン画面だとスケール1のスプライトがキャンバスに対して点みたいなサイズになったりしてわけがわかりません。。
初心者がUnityを覚えるには興味が無くても3Dからやった方が良いですね。
自分みたいにカメラや座標の概念が無いまま画像を表示するにはUIからイメージを作りましょう〜みたいな入門を見てしまったら終わりです。
最初にさせてもらった質問についてはいくつか解決案が見つかったのでもう少し頑張ってみます。 >>303
予想ですがドラッグしてる位置の座標がoverlayの時はrecttransformだったのに対して、ワールド座標になったために遥か彼方に飛んでいってしまったんだと思います。
これをどうにかすれば良いと言う事はなんとなくわかったので調べてやってみます。
無理そうならoverlayのまま意図した動作になる様に仕様を変更する方向でも考えてみます。 3Dから初めて挫折した垢付きみたいなガイジもおるからなぁ
座標の概念はパース定規使ったことがあれば2Dから入ってもすぐ慣れるやろ
あかんかどうかはその人次第やな
垢付きは何をやっても駄目やけどな
UIオブジェクトを複製したらUIキャンバスの外に出て座標めちゃくちゃ
座標いじらずにUIキャンバスに戻したら座標は元に戻るもののスケールが微妙におかしい
なんやその0.99なんちゃらかんちゃらっていうのは
1でええやろ1で
Unityあるあるやで〜 >>298
動かしたりエフェクト出したりするならスプライトでやったほうが多少処理が軽いけど、
canvsはcanvasでレイアウトが楽とかメリットもあるので好きなやり方でいいと思う。
試しに別のやり方で実装してみたりするといろいろ発見があるかと。 >>300
今は家にいないからunity弄れない
ググってみたところ
Undo.RecordObjectとか使えばいいのかなあ
俺の場合は拡張とかわかんないので違う方法[ExecuteinEditMode]だけど visual studio2019でunityのGameobjectとかスニペット使えないんだけど
どうやったら使えますか? >>293
納得いくものではないが自己解決
プレハブにキャンバス置いてUIのテキスト置いた
そのキャラクタを大量にシーンに置いたから
キャンバスの枠が表示されてうざいのでキャンバスのサイズ0にした
unityだけでなく別のツールでも思ったのだが
UIにできて非UIではできないこと
非UIにできてUIではできないこと
というの不便だなあ >>308
俺の場合は解決した
まだ十分な確認はしていないがたぶんok >>310
それぞれの役割があるからしっかり理解して使いこなすしかない
間違って使うから後で困る
マニュアルみて速攻理解する天才エスパーでも無い限り、何度も失敗して理解するしかないかも >>313
板に文字書いたビットマップ貼ったのじゃだめですか? 文字の件はプレハブにキャンバス持たせて表示はできたんだけど
たとえばダメージ受けると数字がこぼれ落ちる演出などはどうするんだろう
自キャラ見方キャラ敵キャラに付けたキャンバスにテキストなのだろうか
今回はそういう用途ではない >>316
俺が今やってるのは2Dなのでカメラの方を向く必要ないからキャンバスである必要ないけど
3Dだとキャンバスの方が楽なのかな
座標とかオーダーとかどうなるのか知らんけど 他の人も書いてるけど
TextMeshProじゃだめなの?
ヒエラルキー右クリ→
3Dオブジェクト→Text-TextMeshPro 俺には使い方わからなかったがそれで可能ならそれが正解なのかな
記憶の片隅に置いておくよ プログラム未経験です。
1年を目途にゲーム制作し、1作目でまずは100万の利益を狙いたいと思いますが
何から始めたらいいでしょうか。 >>320
初心者向けの本でも買ってチュートリアルやるとかから始めたほうがいいんじゃないですか。 テストプレイ中(UNITYで再生中)に
VisualStudioでコード編集するとテストプレイが一時停止になってしまいます。
前は動作させたままコード編集できたような気がします。(気のせいでしょうか?) はい、気のせいです。
スクロールはできるが、記入した時点でフォーカスがVSになってunityは止まる >>308
Undo.RecordObjectは上手く使えなかったのですが、
それの関連で出てきたプロパティ操作とやらを使ったらできました!
ありがとうございました ユニットをクリックすると移動できる範囲の色を変えるという実装を作ろうとしています。
UIのオブジェクトでマップを作った場合、
マップのタイルにUIのImageをアタッチしてこれを半透明にし、後はON/OFFにすることで表現できるようです。
ところがいまヒエラルキーに画像をドラッグ&ドロップで作り出したオブジェクトをベースにマップを作っているので
このやり方ができません。
半透明のマスクのようなものを上から適用したいのですがやる方法があるでしょうか?
すべてを諦めてマップをUIで実装しなすことも考えています。 >>326
自己解決しました。
元のオブジェクトの下に子オブジェクトを追加して、
この子オブジェクトをON/OFFすればできました。 UnityでFE風のSRPGを作ってる人のブログを前に見たな
自分が見たときはちょうど行動可能範囲に色をつけたところで終わってた http://s.kota2.net/1588213392.png
ボタンを押すと5の星だけが表示されるスクリプトなのですが、
親になっている星のオブジェクトをpublicで参照するやり方ではなくて
Findでヒエラルキーから探してくるやり方に変更したら動かなくなりました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Button5star : MonoBehaviour//ボタンにアタッチ
{
//public Transform STARParent; //publicで参照するのをやめる
Transform STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
public void button5star()
{
for (int i = 0; i < STARParent.childCount; ++i) // for文
{
STARParent.GetChild(i).gameObject.SetActive(false);//STARParentの子を一旦全部消す
STARParent.transform.Find("star (5)").gameObject.SetActive(true);
}
}
}
-----------------------------
starParentは空のオブジェクトで子のstarは画像のspriteです。
Findで探している部分が間違っているのでしょうか? >>330
ボタンを押しても何も反応しなくなりました。
publicで外部から親を参照していた時はうまく動いていたのですが、
Findで探すようにしたらボタンが反応しなくなった感じです。 >>329
というかこれエラー出てない?
Findはメンバー変数の宣言時には使えない。
こうすればいけるはず。
Transform STARParent; // = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
void Start()
{
STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
} 簡略化してるのかと思ってたけど
もしかしてStart()とかの関数の外でGetComponentしてる? >>332 333
どうもありがとうございました。
スタート関数の中でGetComponentを書かなくてはいけなかったのが分かっていませんでした。
publicで親を参照していた時はなぜかエラーが出ていなくてボタンも動いていました。 僕もガチ初心者の頃にメソッドの外でGetComponentしようとしたことがありまひた(^^
誰もが通る道なのでふね(^^
ボッキング!(^^ 昨日screenspace.cameraでのUGUIのドラッグについて質問した者ですが、やっと画面に表示される様になったもののクリックした位置のかなり左にオブジェクトがワープしてしまう様になりました。
もうお手上げです\(^o^)/ 原因が同じかどうかはともかく
自分もドラッグで位置を変更できるようにしたオブジェクトがわけのわからない挙動になったことがあるわ
既存のSceneを大量にコピーして増やしたうちの一つだけがそうなったから頭を抱えた
結局原因はヒエラルキーに登録したスクリプトのGameObjectにmissingがあることだった
そんなことでも挙動がおかしくなるんだな ワープ現象は手札置き場パネルのホリゾンタルレイアウトがカードオブジェクトのアンカー?を左上にセットしていたのが原因っぽいです。
ドラッグ開始時に一度コンポーネントをオフにし、アンカーをスクリプトから中心に移動する事で解決しました。
screenspaceの問題についてはRectTransformUtilityを使って座標を変換する事で解決しました。
同じ現象で困る人が後から救われる様に書き残しておきます。
ありがとうございました!
>>339
エラーが出れば自分でも調べられるから楽なんですけどね・・・。 そういえば自分の時はコンソールに何かエラーメッセージが出てたな ここで質問していろいろ弄ってわかったことのメモを置いておきます。
【uGUIのImage】と【SpriteRenderer】について
Unityで画像オブジェクトを表示する方法として、uGUIのImageとSpriteRendererの2つがあるようです。
どちらを使っても似たようなことをできるようですが、やり方が多少異なります。
@uGUIのImageを使う場合
uGUIのオブジェクトはヒエラルキーのCanvas以下に置く必要があり、座標系はピクセル(例:-375〜375)。
画像はUI→Imageをオブジェクトにアタッチして設定(あるいは最初からUI→Imageでオブジェクト作成)。
クリックしたときの動作はUI→Buttonをアタッチして設定。
ASpriteRendererを使う場合
画像を直接シーンに、あるいはヒエラルキーに置くとできるのがこのオブジェクト。
座標系は物理距離(例:-2.5〜2.5。他の人のレスによるとメートルを表しているとか)。
またこのオブジェクトをCanvas以下に移動させると座標系がピクセル(例:-375〜375)に変更。
クリックしたときの動作はオブジェクトにColliderをアタッチして、
Rayを飛ばしてColliderに当たったかどうかを判定(というコードを書く)。
(やったことはないですがRayの代わりにEventTriggerを使った方法もあるようです)
実行時には@とAは重なって表示されます。
まだよくわかっていませんが、@の座標系は動作時の環境(スマホの画面サイズ等)に依存するようで、
@とAはずれるかもしれず、その辺りのケアも必要になるかもしれません。 UGUIではUIを作りましょうって事なんだろうけど、レイヤーを指定して最前面以外に描画できるだけで初心者にはありがたいのになぁ。 何が欲しいねん2Dキャラ欲しいのにSE集いらないやろ >>344
セール終わったばっかりじゃん!
初参戦でdotweenとeasysaveとSE集3個買いました。 宴を買ったけど今すぐ使いたいのはダイヤローグシステムの方だった
次のセールでも半額になっていますように >>346
DOTweenは無料のようですが
DOTween Proを買ったのでしょうか?
セールが終わったばかりとは残念なことです。 >>344
最近買った本にオススメアセットが乗っていました。
Playmaker($65):プログラミング補助ツール
DOTween(無料):オブジェクトアニメーション
Easy Save The Complete Save & Load Tool for Unity ($24.99):セーブやロード実装
Anti Cheat Tool Kit($50):チート対策
UniRx - Reactive Extensions for Unity(無料):コルーチン等非同期処理ライブラリ
JSON .Net For Unity(無料):オブジェクト↔Jsonの変換ライブラリ
Lean Touch(無料):タッチパネル操作
宴3 Unity Text Adventure Game Engine Version3($80):ノベルゲームエンジン
Fungus(無料):ノベルゲームエンジン(ノベルがメインじゃないゲーム用)
Camera Filter Pack($15):カメラエフェクト
Unity Particle Pack(無料):公式エフェクトサンプル
6000+ Flat Buttons Icons Pack($5.99):アイコンやボタンのデザインアセット ずっと解決できない不具合があり教えて頂きたいです。
http://s.kota2.net/1588430526.gif
ゲームを始めて
「赤い人」に付いているスタート関数が走って「赤い人になるボタン」が非表示になります。
「青い人になるボタン」を押すと赤い人が非表示になり、もともと非表示だった「青い人」が表示されるクリックイベントが付いています。
表示された「青い人」に付いているスタート関数が走って「青い人になるボタン」が非表示になります。
最後に「赤い人になるボタン」を押すと赤い人が表示されて「青い人」が非表示になるクリックイベントが付いているのですが、
「青い人」が非表示で消えて「赤い人」が表示されず、「赤い人になるボタン」も残ったままで何度押しても何も起こらなくなります。
RedButtonのボタンコンポーネントに付いているクリックイベントの関数
public void _RedButton()// 「赤い人になるボタン」を押したら
{
Transform Parent = GameObject.Find("ManParent").GetComponent<Transform>();//親オブジェを探す
GameObject.Find("BlueMan").gameObject.SetActive(false);// 青い人が消えて
GameObject.Find("RedMan").gameObject.SetActive(true);// 赤い人が表示
}
分かりにくいですが伝わるでしょうか。
ずっと原因が分からず途方に暮れています。ご指導よろしくお願いします。 GameObject.Findは非アクティブオブジェを検索できないから、
//親オブジェから子を探す
Parent.tran.form.Find("子オブジェ").gameObject.SetActive(true);
にすればいいんじゃないかな >>352
ごめんなさい親がTransform関数だからtransformいらなかった(あっても通るけど)
Parent.Find("RedMan").gameObject.SetActive(true);
でいけると思います >>352>>353
どうも有難うございます。
GameObject.FindからParent.Findに変更したことで挙動が一歩先に進みました。
http://s.kota2.net/1588433567.gif
「赤い人」が表示されるようになりましたが、
「赤い人」に付いているスタート関数通りに動いていません。
「赤い人になるボタン」が非表示になり「青い人になるボタン」が表示されるはず(ループする)なのですが、「赤い人になるボタン」が残ったままです。
赤い人に付いているスタート関数
using UnityEngine;
public class RedMan : MonoBehaviour
{
void Start()
{
Transform Parent = GameObject.Find("Canvas").GetComponent<Transform>();//キャンバスを参照
Parent.transform.Find("BlueButton").gameObject.SetActive(true);//「青い人になるボタン」表示
Parent.transform.Find("RedButton").gameObject.SetActive(false);//「赤い人になるボタン」非表示
}
}
「赤い人」が表示されて最初の状態に戻ったのでループするはずですが、「赤い人」が表示されているのに↑のスタート関数通りに動いていません。ゲームスタート時はRedManが表示、BlueManが非表示の状態から始まりました。
Parent.transform.Findにしているのでたぶん間違っていないと思うのですが。
どのような原因が考えられるでしょうか。 >>354
Start関数は1回目にインスタンス化したときにしか呼ばれないから、アクティブ化したとき毎回呼びたいなら
OnEnable関数に入れると解決すると思います >>355
どうもありがとうございます!
ずっと行き詰っていたので質問してよかったです! ヒエラルキー
Canvas
image
もし、Canvasの子のimageに付いているimage.csの中にあるbool型の変数 isBool が false だったら
{
処理
}
それ以外
{
処理
}
というif文のコードを続けて書くことは出来るでしょうか?
階層をたどって行ってスクリプトの中にある変数がfalseかtrueかを知りたいコードです。
こういう書き方が出来るのであれば教えてください、丸投げで申し訳ないのですがどうぞよろしくお願いします。 子の取得
イメージの取得
スクリプトの取得からの変数を取得
の複合となります。 なんでもかんでも、public にするのは良くないと
よく言われますが、
その理由は、思いがけず他のスクリプトから変更されるリスクがあるから
という認識で大丈夫でしょうか?
そうであるとすれば、個人制作であれば
それほど気にしなくていいですか? >>359
いいよ
でも何でもかんでもpublic メンバ変数は良くないと知ったうえで >>358
どうもありがとうございます。
別スクリプトの変数の値を取得することが出来ました。
もし、Canvasの子のimageに付いているimageScriptの中にあるbool型の変数 isBool が false だったら
GameObject _image; //スクリプトが付けているオブジェimageを変数に入れる
BigModeScript _imageScript; //imageのコンポーネントimageScriptを変数に入れる
_image = GameObject.Find("image");
_imageScript = _BigModeScript.GetComponent<imageScript>();
bool _isBool = _imageScript.isBool;
if (!_isBool)
{
処理
}
else
{
処理
}
ifの()の中に全部入れるようにするのかと思っていましたがそうではなかったです。 http://www.diced.jp/~lizard581/cgi-bin/imageup/data/1377.jpg
http://www.diced.jp/~lizard581/cgi-bin/imageup/data/1378.jpg
初歩的な質問ですみません。カメラの撮影範囲を表示している@の線に背景が触れると、Aのように表示されます。
Aのようにならず正常に表示するにはどうすればよいのでしょうか。
分かる方がいましたら回答お願いします。 >>362
その線は、カメラに表示させる範囲をあらわしてるんよ。
カメラに映る範囲の距離を伸ばせばいいだけだから、
カメラのインスペクタの"Clipping Planes"のFarの値を増やせばいいよ。 ユニットが選択されたらステータスに顔画像を表示する部分を作っています。
1.ユニットの子オブジェクトのImageに画像をロード(ユニット生成時に一度だけ)
2.ユニットが選択されたとき、ステータスUIのImageを選択ユニットの子オブジェクトImageに置換
というやり方で実装しました。
ここでゲーム実行中に1の画像ファイルを別なものに置き換えたところ、
2のステータスUIの画像までリアルタイムで(正確にはUnityをActive windowにしたときに)変わりました。
ユニットが選択されるたびにファイルアクセスが発生しないように上記のような実装にしたのですが
ステップ1で予め画像をロードしておく処理は無駄なんでしょうか? 質問失礼いたします。
カメラにアニメーションキーを打って再生しているのですが、
1フレーム間の移動を大きくすると、再生時に正常に再生されない(キー前後で補完のようなものがはいる)のですが、原因や対処法などございますでしょうか。
宜しくお願い致します。 Unity AIPの詳しい解説が掲載されている教本があれば教えてください 垢付きさんはUnityの教本一冊も読んでないでしょ〜 カメラをズームしてもぼやけないよう予め大きめのpng画像でPlayerキャラを用意し、Scale縮小して表示したいと思います。この場合、
・一番親のオブジェクトでまとめて縮小する、
・キャラを描画するレンダラーコンポーネントを付けた子オブジェクトを縮小する
どちらのパターンが無難でしょうか?
親オブジェクトにはRigidbody2Dと接地用のコライダー、メイン処理用のスクリプトが付いており、
子はレンダラー用、レンダラーに追従する当たり判定用などのオブジェクトが3つぐらいあります。
どちらも今のところは大丈夫なんですが、後々物理演算のかみ合わせとかなにか問題出てくる要素あるのではと決めかねています。
なんかふわっと質問で申し訳ないですが、アドバイスください。 >>373
後々がどういう仕様になるか、ご本人がわからなければ第三者はもっとわかりません。未来の話は置いといて作れば良いかと。
あと、気になったのは大きい画像とありますが、2dでドット絵なら、主スケールの時に1対1ドットにすべきかと思います。縮小すると線が消えますので。 >>374
ありがとうございます。あまり考えても仕方がないとは思うのですが、
オブジェクトの物理演算の動きを阻害させずにグラフィックだけ動かす必要が出て、オブジェクトのプレハブの親子関係全修正になってしまったので、
後々融通の効くオブジェクト構造とはどういうものなのだろうかと気になっています。
例えば炎がキャラの位置に追随しながら周囲を回転する魔法を実装したい、となった際にはキャラの子オブジェクトとしてインスタンスするのが良さそうですが、
親のルートオブジェクトがキャラによってまちまちの縮小だと汎用的に実装できるのだろうか…とかですかね。
主スケールのときに1対1ドットとは、基準となるカメラのscaleで原寸画像で表示できるサイズにすべき、ということでしょうか?
キャラ画像はドット絵のスプライトアニメではなくアニメ塗りスプライトのボーンアニメを実装しているのですが、カメラを引いた時のガタつきが気になります >>373
一番無難なのは、画像アセットの「ユニットごとのピクセル数」を設定する方法かな。 >>376
SpriteModeのPixel Per Unit の項目ですかね。うろ覚えになって以降意識の外にあったので調べ直してみます。 >>375
ドット絵と思い込んでましたので、そうでない、拡大にも耐えられる絵なら、主スケールは忘れてください。失礼しました。 >>379
複数
掲示板などでは嫌われる行為
回答を速く得るために多数の掲示板に書き込む
そういう人はどれかひとつの掲示板に回答があれば他の掲示板住民のことは無視するというかどこに書き込んだか覚えてもいない
自己解決すればすべての回答を放置する確率が高い
最初に説明をすれば許されることがある
急いでたからと言うと炎上する >>349
質問させて下さい。
ターン制バトルのRPGなどで敵ABCが居たとして、
それぞれの攻撃の処理にモーションを含めて1秒ずつかかるとします。
Aの攻撃が終わったらBの攻撃〜とする時にコルーチンなどで1秒毎に行動させる方法が思い浮かびます。
しかし、ゲームを作っているうちにAのモーションは2秒かかるという状況もでてくると思います。
その場合はAの行動が終わった事をフラグにして、アップデート関数でif(A行動済み==true)という風に作るのでしょうか?
それとも、Aの行動が終わった時に呼び出す〜みたいな関数があるのでしょうか?
アップデートを極力使わずにプログラミングしているのですが、アクションゲームなどは常にアップデート多様していると思うのであまり気にしないで使っていいのでしょうか?
ご指導頂ければと思います。
よろしくお願い致します。 すみません、予測変換で謎のアンカーがついてしまいました・・・。 >>381
いろんな作り方があるので間違いじゃないです。 >>381
敵ににスクリプトが付いていて、呼び出して行動させるなら、戻り値で対応するべきかと思います。 >>384
回答ありがとうございます!
引数の使い方を最近やっと覚えたばかりで戻り値というアイデアはありませんでした。
フラグの管理に便利そうですね!
質問の仕方が冗長だったのですが、
メソッドの終了をトリガーにメソッドをスタートさせる事は出来るか(またそれは簡単か)
ターン制のゲームの処理をアップデートで管理するのは普通の事か(RPGに限らずシュミレーション等で敵の移動が完了したら〜など)
が一番知りたいです。
もしご存知でしたら教えて頂けると幸いです。
よろしくお願い致します。 私なら、ターン制ならupdateは使わない方向で作るかな。全て一元管理が基本(私見)だし。 >>386
ありがとうございます!参考にさせて頂きます。
プログラミングの基礎的な事はだんだん出来るようになってきたのですが、ゲーム作りは計算結果を瞬時に表示すれば良いわけじゃないので難しいですね。 >>387
敵キャラ毎のローカルでupdateを使うこともあります。例えば敵キャラの待機中のアニメのコントロールなどメインに関係のない動作処理で、もちろんメインからの指示があればキャンセルして動作する仕様です。
switch などで条件分け。 横から失礼します
>>388
普通のリアルタイムゲームで
敵が例えばしばらく右に動くって場合
毎フレームごとにメインクラスのアップデートから敵クラスの関数(右に動く)を呼び出すカンジで
組むということでしょうか?
メインクラスで基本すべてのオブジェクトを管理するみたいなことでしょうか? >>戻り値で対応する
このテクニックおしえてほしいですm(_ _)m ButtonコンポーネントのOn Click() は
右下の + を何回も押せば複数設定できますが、
複数の On Click() を設定した場合、上から順番に実行されるのでしょうか?
それともランダムでどれかから実行されるのでしょうか? >>381
DOTweenであれば、
.OnCompleteがアニメーションが終わったら実行されるコールバックなので、
この中に続いて行いたい処理を書くのはどうでしょうか。 >>391
試しに作ってみて呼び出し先でDebug.Logで適当な文字を出力すれば動作がわかると思います。
わかったらおしえてください。 >>392
DOTween聞いたことない言葉でわからないですがこれから
調べてみようと思います
レスありがとうございます! >>393
どうもありがとうございます。
On Click() を10個設定して実行したら必ず上から順番に実行されました。
ありがとうございます。 PUN2を使用して1つのオブジェクトを複数人で同時に操作することは可能ですか?
所有権が絡むので無理なのかな…
ターン制のゲームを作ろうとしてまして、自分のターンが終了したら「完了」ボタンを押して
次のプレイヤーに所有権を譲渡という処理が現実的ですか?
このとき完了ボタンの所有権も合わせて譲渡なのかな?
考えはあってもコードがスラスラ書けないので
参考になるサイトなどあれば教えてください。 関数が実行される回数を数えて5の倍数の時に特別な処理を行うようにしたいのですが、
どのようにすればいいのか教えてください。 unityでAudioClip使って音を鳴らしていたのですが
何かの拍子に音がならなくなってしまいました
ゲームビューのMute Audioはオフで、オーディオリスナーもいて、オーディオソースもミュートになっていません
最初はなっていたのですが気がついたらならなくなっていました
なんでもいいのでこれ確認してみて?っていうのありませんか
思い当たる節としては、ビルドセッティングをPCからwebglに変更したことなのですが何か関係ありますかね? >>403
新しいオブジェクトに新しくオーディオソースつけて適当な音つけてatdiosouce.Play()しても鳴りませんでした
isPlayingを確認するとtrueにはなってます >>405
エディタ再起動、本体再起動してみましたがダメでした
音が鳴る他のプロジェクト(書籍のおまけプロジェクト)を開いたら音が鳴りました
あとビルドセッティングをpcに戻してみたんですがやはり鳴らないままでした Androidのビルドのプレイヤーが表示されない問題は解決した
管理者権限でPCを使えばいい話だった
でもビルドエラーが19個出て流石に心が折れた
最初は20個以上出てたけど19個にまで減らせた
でももう流石に疲れた
別のことやりながら気長にやるわ >>403
一つ気がついたのは、ゲームビューのstatsを押すと、
「Audio Level ー∞dB」になっていました
音が鳴る同一ソース同一音源別プロジェクトだと-33dBと表示されていました >>408
解決しました
project setting>disable unity Audioにチェックが入っていました
こんな設定触った覚えはないのですが・・・
お騒がせしました やっちまった
今のUnityってAndroidStudioもJDKもいらんのか
古い情報を参考にしてAndroidStudioとJDK入れてしまってた
慣れないマックだからどこに何が入ってるのか全くわからん
ビルドエラーの原因がこれならお手上げやしバックアップデータからリカバリーするわ >>396
Pun2のサンプル作成したので適当にどうぞ
ネットワークは初心者向けではないと思うので、これについてのフォローは別スレ「Unityで何かゲームを作りたいんだがね」
https://mevius.5ch.net/test/read.cgi/gamedev/1452084824/
でお願いします
作りちょっと雑ですが操作権を渡して移動できるようにしてあります
クリックでビームがでるけど、そこは未対応、2,3のWeb見たけど結局公式のチュートリアルとリファレンスにらめっこでした
https://imgur.com/TFScO0P
http://whitecats.dip.jp/up/download/1589102312/attach/1589102312.zip
pass:1234 >>411
まず感謝もうしあげます。まだ中身見れてませんが帰ったらすぐ確認します!
unity、プログラミング初めて2ヶ月でググりながらここまできて躓いたので手を差し伸べられたのが本当に嬉しいです 2か月でオンラインゲー作ろうとかすごいですね
自分も初めて2か月くらいだけどUIのボタンのクリック処理やっと理解したレベル >>414
やっぱやりたいことがあると必死になりますね。
VBAとかは仕事でたまにさわってたのでプログラミングってこんな感じ?ってのはありますが
クラス?インスタンス?グローバル変数っておいしいの?ですよ UnityでiOS向けのゲームを開発しているのですが、アプリを公開しようと申請をだしたところPUSH通知の設定があるけど証明書が登録されてないよメールが届きました。
アプリの中でPUSH通知を使ってないのですが、どうしたらこのアラートメールが来ないようにできますか? リカバリしてUnity入れ直してもビルドエラーが一つも減らない
先にiOS版を出そうかと思ったけどこのスレ見て目眩がした
あかん…本格的に心が折れてきた
ソースコードと過去絵使いまわして同人バカエロゲでも作るのが精神衛生上一番良さげなのが更に心折れる フリーのノベルゲームを作りたいのですが、他人が作ったMMDキャラを使う場合、コレは個人利用になりますか?
また、unityでお薦めの参考書があれば教えて下さい >>418
真面目な話すると
個人利用に当たるかどうかも自分でわからない奴は手を出さないほうが身のため >>419
分かりました。
ありがとうございます。 unityで2dで開発してます
マウスボタンが押されたかの方法をネットで調べて
Update()でif (Input.GetMouseButton(0))
によりマウスボタンが押されたか判定が実現できました
マウスボタンを押していないときも含めてマウスの座標も得られました
しかし
ドロップダウンのリストが現れているときも
Update()でボタンダウンとかできてしまうので困っています
どうすれば
ドロップダウンのリストが現れているとき
Update()でのマウス位置やボタンダウンに関する処理を
させないようにできるのでしょうか?
自分なりに調べたり試したところUpdate()では何もしないのがいいのかな
ドロップダウンのリストが現れているときというのがわからないから
ドロップダウンのリストの生成やアクティブやZオーダーもこちらで制御できないし
キャンバス2つ用意してEventSystemでなんとかするのかな >>421
まず何がしたいのかも何が言いたいのかもわからないです。
現在の自分の状況をまったく知らない人が見てもわかる質問しましょ? 他のオブジェにアタッチしたスクリプトの変数をボタンを押して変更したいです。
Boolean(空オブジェ)にアタッチしているBoolean.cs の中の変数 bool BOOL を ボタンを押して、false から true にしたいです。
ヒエラルキーにあるオブジェ
Canvas
Button
Boolean(空のオブジェにBoolean.csアタッチ) //■■■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 にしたいのでどうか教えてください。 >>424
bool BOOLの下に
Boolean booleanを宣言して
booleanにゲットコンポーネントでBooleanをいれるか、シリアライズフィールドでオブジェクトBooleanをアタッチします
BOOL = trueって、なってるところを
boolean.BOOL = true
に変えればいいと思います 下記のスクリプトのようなオブジェクトが滑らかに移動する動作を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);
}
} >>425
ご親切な回答を有難うございます!
おかげ様で出来ました! IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0 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 というエラーがでました。
どのオブジェクトにも参照を持たない参照変数にアクセスしようとするエラーらしいのですが、一応動作はしている見たいで、参照もできている感じですが無視していいのでしょうか。
スタート関数を用いないほうがいいのでしょうか。 >>429
NullReferenceExceptionが出るということは、_button1が取得できてないんじゃないでしょうか。
Debug.Log(_button1)で中身が出力されますか?
それと、枝葉の話ですがOnEnable()の中では、
_button1.SetActive(true);
として、gameObjectはいらないと思います。 >>421
bool IsPressed = false;
if (Input.GetMouseButton(0) && IsPressed==false) {
IsPressed = true;
・・・
}
というふうにするのはどうでしょうか。
ドロップダウンリストを消したタイミングで
IsPressed = false;
にしてやればいいと思います。 >>432
IsPointerOverGameObjectで解決しました >>430
どうも有難うございます。Debug.Logで調べてみたのですが
どうやらスタート関数よりOnEnable()関数の方が先に呼ばれているようです。
それでうまくいってなかったのだと思います。
OnEnable()の中では、
_button1.SetActive(true);
として、gameObjectはいらないと思います。
↑了解いたしました。有難うございます。 >>426
まず、滑らかに移動するルーチンをお作りなさい。
つぎに、
ボタンが押されたらある変数が0から1になるルーチンを作りなさい。こちらで押したら離しても1のままとなるように。 >>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;
}
} 初心者だから毎日の様に新しい知識が増えて、同じプロジェクト内でもスクリプトの記述ルールとかが変わっていきます。
好きにしろよって感じだと思いますが、皆さん書き直してますか?
まだまだクソコードだからキリが無いとも思いますが、コンポーネントの取得方法の書き方などが変わると目的の場所がわからなくなっていくので・・・。 >>438
最初は何でもかんでもオブジェクトに貼り付けて全部インスペクターで管理しちゃってたのが段々スクリプト完結になっていったりとか。
前者はUnityの良さでもあるのでNGでは無い気もしますが、混在してるとなんだかモヤモヤしますね。 記述ルールの変更ということで、
初めはステータスコンポーネントにキャラクターの能力値を記述していたのですが、
あの能力を使わせよう、この動きを行わせようとしているうちにどんどんメンバが増えていき
講読性も拡張性も大変悪いので、GetterSetter他パラメータ固有動作を一つずつクラス化し、
ステータスコンポーネントのDictionalyに随時格納しているところなのですが、
Dictionalyに格納したクラスは格納したまま変更可能でしたっけ?
出来なければクラス化したパラメータをメンバとしてステータスコンポーネントに並べるだけでなのですが、
そうなると果たしてこの方法が講読性、拡張性を改善した方法と言えるものなのか
そもそもこのやり方、いろいろな意味で正しいのかどうか
既に修正に多大な手間と時間を要している状態なわけですが、自分では判断がつかず悶々としています
皆様の所見としてはどうなのか、お答え願います ue5が発表されてTwitterでトレンドまでなってるけどunity使ってる君たちはどんな気持ちなんだ? ゲームエンジの能力=自分が作れるゲームって勘違いしてるのかな? 橋聖子なんて無視しとけ
あいつUnityどころかRPGツクールも挫折するレベルだぞ UE5の情報が公開されましたね。
アセットの扱い一つ見ても、”そうそう、それが欲しかったんだよ!”と叫びたくなるほど、
UE5陣営が本当に開発に寄り添っている事が良く分かる、素晴らしいデモだと思います。
UE4の時点でもう進化の限界だろうと思っていましたが、彼らは軽く想像を超えてきます。
unityのデモはいつも何が言いたいのか意味解らないですね。
https://www.unrealengine.com/ja/blog/a-first-look-at-unreal-engine-5
4からの互換もかなり考慮されている模様。
unityは0.1でもバージョンが違うと動かない事が多いので、
この辺りの配慮も嬉しいですね。 Unityすらまともに扱えない初心者が集まって教えて君するスレで何やってるんだこいつ
エンジン選ぶ立場の上級者がいるスレでやればぁ? >>443
X:自分が作れる
O:自分でも簡単に作れる UE5、まるで実写みたいなクオリティの映像見せられまひたけど(^^
一般人がそこまで高クオリティなモデリング出来ると思ってるのでひょうか?(^^
僕的には2Dの扱いやC++以外の言語を使えるようになるかが気になってまふよ(^^
クソゲー製造機がUnityからUE5に変われるかが問題でふ(^^
ボッキング!(^^ ゲームエンジンをツクールだと思ってる人多いよね。
自分はそうなってくれた方がありがたいレベルだけど。。 もう新規はみんなue5に行っちゃうけど取り残された君たちはどんな気持ちなんだい? 基本無料なんだし、インストールしてみてその人の作りたいものに合ってたら使えばいいんでないのか?取り残されるって何に取り残されるんだ? 無限ループで Unity エディタがフリーズしたときってどうすればいいのでしょうか
有料アセットしかないのか ゲームエンジン全般の話だけど、どれだけ機能が凄くて開発元が全力出したデモで痺れるような体験が出来たとして、同じレベルを個人で再現するのは不可能だからな
UE5デモで出てくるハイポリの石像1つすら再現出来るのは何人いるの?って話で、結局は出来ないのと同じだと思うわ ue5を使いこなせるのは任天堂やらの大手ぐらいだろう
個人ゲーム開発者には関係ない話だとは思うんだがね
unityより余程ゲームが作りやすい!とかなら移ってもいいが キミが知らんだけよ
同人ゲームとか個人でUE使ってる人はたくさんいる >>437
勉強になるし、書き直しておかないと後でわかりづらくなるので
気がついたときに修正していってます
>>439
このインスペクターに出すってのがなんのためなのかいまいちわかりません
基本的に出さないほうが管理しやすいように思えるので出さない方向でやっています 3D空間を移動するオブジェクトAの子にMainCameraがあります。
マウスのx,y座標移動で視点を変える機能を作成したのですが、オブジェクトAとMainCameraの間に遮蔽物(壁や床)が存在すると遮蔽物が映ってしまいます。
狭い道や建物に入ることを想定し、上記の問題を回避したいのですが、解決するにはどのような方法がありますでしょうか? >>464
3D作った事ないしうろ覚えだけど、遮蔽物を透明にするのってカプコンかなんかの特許なんじゃなかったっけ?
ズームしてキャラに近づくゲームが多い気がする >>462
壁や床に入らないようにコライダーを調整するだけ >>462
カメラ周辺から被写体に向けてレイを投げて、障害物があったらその前に回り込ませたり、障害物の透明度を下げたりする。
ただ、勉強のために自分で作ってます、とかならいいけど、
そうでないならCinemachineなどのカメラアセットを使うのをお薦めするよ。
unity公式アセットなので無料だし、ググれば日本語で使い方説明した記事がいっぱい出てくるから。 WebGLのInputFieldではコピーできないのかよおおおお
どうしたらいいのでしょうか
unityエディタでの動作確認したりするので
対策したらWebGL以外では動かなくなるのは困る unity2019で作成しtimelineを2018に移行したいのですが、2019だtimelineがpackageになっているためか移行出来ません。 >>468 です
投稿ミスりました。
対処法などありますでしょうか。
宜しくお願い致します。 UE5きたかwww
UEで作ったゲームは3000ドル超えたら超えた分の5%払う条件が
条件が100万ドルになるとかwww 来年かよwwwまだかww 詳しくは自分でちゃんとググってねw
個人開発レベルもぐんと上がるのかww
すごい時代やww シーン内のオブジェクトって
インスペクタ内でコンポーネントを追加や削除していくと
もともとは何だったのか判別しづらくなると思うんだけど
分かる方法ありますか?
例えば、このオブジェクトは
もともとは"create empty"で作ったものだとか、分かるんかな?
他人が作ったサンプルシーンを開いた時に、
知りたいんです 元がプレハブならオーバーライドのとこ見ればわかるけど サーフェスシェーダーで使うIN.uv_MainTexと
シェーダーグラフのUVノードで取得できるfloat2って同じ値でしょうか?
シェーダーグラフでノイズテクスチャを作ってるんですが
サーフェスシェーダーで作ったノイズテクスチャと比べて解像度が低い印象です。
TilingAndOffsetノードでスケール変えたりもしましたがズームするとボヤッとして無限ノイズが作れません。 BroadcastMessage, SendMessage の仕様なんですが、
if (Input.GetKey("space")) {
gameObject.BroadcastMessage("ApplyDamage", 1.0f);
}
とやってスペースキーを一回押すと、ApplyDamage が 100 回近く呼ばれるんですが、こういう仕様でしょうか?
呼び出しを 1 回にするのはプログラマー側でやらないと駄目ですか? 1回にしたいならGetKeyDownかGetKeyUp >>479
何故そうなるかは覚えておいた方がいいよ。
OffからOnになったか (GetKeyDown)
OnからOffになったか (GetKeyUp)
Onか(GetKey) >>480
なるほど
GetKeyDownが新社会人
GetKeyUpがリストラ無職
GetKeyが神
こういうことか! ここodin使っている人いますか?
[TableList]で30個ぐらいのボタンを作成したいんですが
配列からボタン名を設定することは可能でしょうか?
現状だとボタン名が全て"ButtonName"になってしまいます。
[TableList]
public List<NewBtn> Lists = new List<NewBtn>()
{
new NewBtn(),new NewBtn(),new NewBtn(),
};
public class NewBtn
{
[Button("ButtonName" , ButtonSizes.Large)]
public void BtnAction(){}
} >>483
声出して笑ってしまったわw
>>484
Tool→OdinInspector→AttributeOverviewのButtonのサンプルコードは見てみた?
何をボタン名にしたいのかわからないから
もうちょっと具体的に質問してもらえると手伝えるかも。 Get Key Down ひとりでは
解けない愛のパズルを抱いて
Get Key Up この街で
やさしさに甘えていたくはない
Get Key Down 君だけが
守れるものがどこかにあるさ
Get Key Up ひとりでも
傷ついた夢を取りもどすよ >>487
>Get Key Down ひとりでは
>解けないツールの仕様を抱いて
>Get Key Up このスレで
>やさしさに甘えていたくはない
>Get Key Down 君だけが
>答えれる問いがどこかにあるさ
>Get Key Up ひとりでも
>つまずいたバグを取りはらうよ 規制解除めでたい
しかし自宅待機や自粛ストレスの気分転換をコンセプトに作ったワイのアプリの行き場は何処へ…
Unity触り始めの1ヶ月でアプリ二本作ったはいいもののビルドエラーには勝てなかったよ…
ソースコード使い回しで同人エロゲ作るか
PC用なら流石にビルドエラーはないやろ… >>490
1ヶ月で2本作るとか凄くない?見てみたい >>491
二本作ったとドヤってますが…
実際は教本のサンプルスクリプトを改変しただけなので誰でもできるレベルです
画像も過去に作ったアプリの使い回しやフリー素材を加工したものが大半ですし
教本のサンプルスクリプトは改変したものを公開・販売しても良いと明記されているので改変自体はいいんですがまさかビルドで躓くとは思いませんでした
リリース自体は諦めていませんがビルドの方法は地道に調べていこうと思います >>規制解除めでたい
これってどういう意味ですか?
UNITYの規制がなんか解除されたってことでしょうか? なるほど 文脈からも読み取れますね
最近UE5が話題になってるのでUNITYなんか対抗したのかと思いました フラグをつけてupdate内でif文を1度だけ処理させた時、その後も毎フレームtrueかfalseの判定をし続けるのでしょうか?
またそれはパフォーマンスに影響しますか?
それともUnityやC#の仕様などで二度と変化しない様な変数は以降スルーされる様な仕組みになってるんでしょうか? Debug.Log君に聞いてみればちゃんと答えてくれるゾ >>497
ですよね・・・!
>>498
すぐ確かめられますね、、くだらない質問してすみませんでした。 >>486
ボタン名ですが、例えば特定のフォルダに入ってる複数のシーンアセット名を
テーブルリストのボタンに流し込む仕様で考えていて、作りたいのはシーンローダーのようなものです。
現状はボタン一個にパスをベタ書きしていて、シーンのバージョンが上がったら
書き直す状態なので効率が悪いです。
ボタン名用の参照はこんな感じですかね。
using System.IO;
string[] scs = Directory.GetFiles(Application.dataPath + "/Scenes/Test/", "*.unity", SearchOption.AllDirectories); >>500
TebleListがあるスクリプトに、TableList内のエレメントを取得するメソッドを書いてそれを呼ぶ、というのはどうでしょうか。
そのメソッド内から、NewBtn側に用意した、ボタンのラベルとなるstring型の変数を書き換えています。
GetTableElementsは下記ではボタンにしているので、sceneが増えたらボタンを押し直さないといけませんが…
[Button("GetTableElements")]
void GetTableElements()
{
string[] scs = Directory.GetFiles(Application.dataPath + "/Scenes/Test/", "*.unity", SearchOption.AllDirectories);
Lists.Clear();
for (int i = 0; i < scs.Length; i++)
{
Debug.Log(scs[i]);
NewBtn newBtn = new NewBtn();
newBtn.SetLabel(scs[i]);
Lists.Add(newBtn);
}
}
public class NewBtn
{
string buttonLabel;
public void SetLabel(string labelStr)
{
buttonLabel = labelStr;
}
[Button("$buttonLabel", ButtonSizes.Large)]
public void BtnAction() { }
} Unity : 2018年にGoogleと提携。
Unreal Engine : 中華企業テンセントが買収。
ゲームエンジンは使う人が少ないため商業化が難しいとされてきたのにUnityが
台頭してきている理由が分かった気がした。 if文についての質問です
条件の指定の仕方(if文)で
シーンにAとBという名前のついたオブジェクトがあるとします。BはAの子供だとします。
子供はいない場合またはCという名前の子供可能性もあります。
"A"というオブジェクトの子供に"B"というオブジェクトがついていたらという条件式を
書こうとする場合
if()のかっこの中はどう書くかかわかる人いますか? >>503
var a = GameObject.Find("A");
var b = GameObject.Find("B");
if (a!=null && b!=null && b.transform.IsChildOf(a.transform))
//; >>504
早速の回答ありがとうございます。うごきました。 3Dモデル(A)にスクリプトを沢山取り付けて動作させてます。
新しい3Dモデル(B)を作成して(A)のスクリプトをインスペクター上で1個1個コピーして(B)に貼り付けているのですが纏めて貼り付ける方法などありますでしょうか?エディタ拡張はやった事ないのですが自分でエディタ拡張組まないと出来ないのでしょうか? >>506です。
良い言い回しが分からず伝え難くてすいません。画像で表すとこのような事をやりたくご教示頂けないでしょうか。
https://i.imgur.com/OYEY2in.jpg
現状は1つづつコピー貼り付けで対応しています。 >>506
逆に考えるんだ。
aをデュプリケイトして、オブジェクトをbに差し替える。 >>508
モデルAを複製して見た目をモデルBに
するという事でしょうか、それが可能なら質問事項より断然やりやすくなります。 >>508
あっ!モデルAをコピーして中身を全部消す→モデルBの中身をモデルAに写すで
うまく行きました!
なんで気が付かなかったんだろ・・
ありがとうございます! パーティクルでオーラのようなものを作り、軌跡に粒子を巻き上げながら(というより残しながら)地面を走っていく演出を作ろうとしています
パーティクルでシミュレーション空間をワールドにしたのですが、地面を走らせるためにリジッドボディのAddForceで飛ばしても
粒子がその場に残らずパーティクルの塊がそのままま進んでいってしまいました
前述のような演出を行わせるにはどうしたらよいでしょうか >>511
パーティクル設定の、emitter velocityでは?
よく分からんけど、試してみてくれ unityとVisual Studioを連携させようと環境設定開いたら
外部のスクリプトエディター一覧にvisualstudioが出てこないのですが
なぜでしょうか
バージョンはvisualstudio1.6.0.3
unity2019.1.2f1です unityでml-agentsのチュートリアルの3Dボールの機械学習をやりたいんですが、anaconda promptで実行すると
PermissionError: [WinError 5] アクセスが拒否されました。: './models'
During handling of the above exception, another exception occurred:
のようなエラーが出ます。
また、unity上では
Couldn't connect to trainer on port 5005 using API version API-13. Will perform inference instead.
UnityEngine.Debug:Log(Object)
MLAgents.Academy:InitializeEnvironment() (at Assets/ML-Agents/Scripts/Academy.cs:228)
MLAgents.Academy:LazyInitialization() (at Assets/ML-Agents/Scripts/Academy.cs:147)
MLAgents.Agent:OnEnable() (at Assets/ML-Agents/Scripts/Agent.cs:255)
というエラーがでるんですが、どなたか原因がわかるかたいらっしゃいますか 移動用のスクリプト、自動で敵を見るスクリプト、射撃用のスクリプトなど、現在オブジェクトに用途別に作ったスクリプトを多数載せてるんですが、これって一つのスクリプトにまとめたほうが処理は軽くなったりしますか?
オブジェクトの使用目的に合わせて、小分けにしたスクリプトをいくつも載せてったほうが汎用性が高そうだと考えてなんですが、これが正解なのか?なんか落とし穴があるんじゃないか?
とモヤモヤしています >>515
'./models'へのアクセス権限がないようですが、フォルダを開けますか?
Couldn't connect to trainer on port 5005 using API version API-13.
についてはググれば海外のフォーラムで少し議論されてるようですが参考になりませんか
>>516
私も詳しくありませんが
Unityはコンポーネント指向らしいのでそのやり方でいいんじゃないでしょうか https://gametukurikata.com/program/scriptableobjectitemdatabase
今このサイトに沿ってデータベースを作成しました。クリックしたオブジェクトを取得してその別のデータをテキストとして表示する(例えば武器をクリックするとその攻撃力が表示されるなど)にはどういうスクリプトを書いたら良いでしょうか。
ちなみにクリックしたオブジェクト名を取得するところまでは書けていますが,そもそもSceneにあるオブジェクトとデータベースのデータが紐付いていない状況です。 IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0 vs codeでインテリセンスは有効になるでしょうか?
unity debuggerではだめでしたが、公式のアドオンは存在しないのですか? >>518
データベースの後、どこまで作ったのさ?
引っかかったところで質問してくれたら答えやすい。 和尚本のサンプルを手本に横スクロール型の2Dドット絵アクションゲームを作っています
キャラがジャンプした時のグラフィックに関して
キャラがジャンプすると髪や胸が揺れるというアニメーションを入れたいと思っています
といっても細かいものではなく
リジット2Dを付けたキャラの上昇時と降下時にスプライトを切り替える程度でいいのですが方法がわかりません
ドット絵アクションでも揺れものアセットを使ってボーンを入れた方がいいのでしょうか?
ご存知の方がいらっしゃれば教えてください >>522
どっちでもいいさ。
スプライト 切り替え unityで潜れば良い >>522
unity 2D アニメーション
で検索 Mathf.CeilToInt(1 / 2) = 0
Mathf.CeilToInt(0.5f) = 1
これってどうして? >>526
1/2=0だから
int / int の端数は切り捨てられる >>527>>528
早い回答ありがとうございます >>521
>>518のサイトの「アイテムデータベースを利用する」のコードを書いていてコードの意味が掴めなくて手が止まっているのですが,
「Item」型や「ItemDataBase」型,「GetItem」関数ってUnityに標準で組み込まれているもの(ユーザー定義ではない)なのでしょうか?(公式のヘルプでも見つかりませんでした)
もしヘルプかなにかがあれば教えていただきたいです。 C#の基本を勉強したほうがいい
そのページに書いてあるとおり作ったクラスやメソッド 仕事じゃないならデータベースはOdinで作ってた方が良いと思いますね
標準機能でインターフェースとか作ってたら終わらないですよ Odinって2020とかでエディタ変わっても追随してるん? データベースはcsvで書いておけば楽だと思うんですがどうなんでしょうか くだらない質問だけど、ブラゲーでメモリキャッシュオーバーエラー出た時にどこかにUnityって書いてあったらUnityで作られたってことなの? 質問失礼します。
スタート関数でHorizontal layoutを持たせた親オブジェクトの中に5個のオブジェクトを生成します。
ゲームのスタートと同時に5個のオブジェクトのポジション情報(vector3)を利用してそのオブジェクトを移動させたいです。
生成のすぐ後に移動アニメーションが含まれた関数を実行すると、恐らくまだレイアウトが効いていないためすべて同じ位置からアニメーションしてしまいます。
遅延処理を入れる事も考えましたが、例えば0.1秒の遅延をいれたとして利用者の端末の処理速度次第では意図しない動作になるのではないかと不安です。
安全マージンをとって1秒などにするのはゲームのテンポを損なうため避けたいです。
初期化が終わったら実行するというのはどの様な手法が考えられますでしょうか?
参考になるかわかりませんが、アセットはDOTWEENだけ持っています。
よろしくお願いします。 >>536
使った事ないから遠いかもしれないけど、子のオブジェクトのstartに完了フラグ入れて監視しては? はじめまして。
質問させて戴きます。
TPSのゲームの簡単なスクリプトを組みまして、少し前に銃を撃つスクリプトを作成しました。
簡単に言うと、弾丸として作成したプレハブを、クリックするたびに銃口(と定義した、銃の先端くらいに配置した空オブジェクト)から銃の向きに真っ直ぐ打ち出す....と言う簡単なものです。
作った時は何も問題なく使えてたのですが、そのあとそのスクリプトはほとんど触っていないのに、銃口より遙かに下から射出されるようになっていました。
それも毎回ではなく3回に一回はちゃんと銃口からでてくるのです。
PCが7年前のものなのでスペックのせいで処理がちゃんとできていないのかな?とも思いましたが、60fpsは出てるような状態でも同じことで、かと言ってスクリプトも単純なものでおかしい点もないように見えます。
上記で頭を抱えているのですが、何かアドバイスをいただけないでしょうか。
よろしくお願いします。 >>538
ちなみに変な位置から射出された場合も、Instantiate()で指定したプレハブを、指定した角度で射出してくれています。
銃口の取得だけがおかしいように思えます。 >>536
移動アニメーションがDOTweenで行われているのであれば
DOTweenのOnStart()で移動アニメーション前にレイアウト設定したらどうでしょうか
あるいはオブジェクトをInstantiateを使って生成しているのであれば
Instantiate時に引数でPositionを設定できます >>538
地道なデバッグが必要かもしれません
以前は問題なく動いていたということなので
少しずつスクリプトを以前の状態に戻していき
問題が出る場所を特定するとよいでしょう
また以前のスクリプトに戻してもまだ挙動がおかしければ
原因はスクリプト以外にあるということになります >>541
ありがとうございます。
いろいろ試してみます.... ワイもちんちんをクリックするたびに白いオブジェクトが飛び出すゲーム作ったで〜 >>538
こちら解決しました!!
でもいまいち仕組みがわからない....
操作キャラをWASDで動かすためにキャラクターコントローラーを追加してまして、別のなにかのときにリジッドボディも一緒に入れていたようです。
この2つは一緒に入れちゃダメなやつなんですかね、キャラクターコントローラーってやつがよくわかってないので勉強してきます。
とりあえずリジッドボディを削除したら直りました。
ありがとうございました。 >>537
horizon layoutの完了を感知する方法、もしくは実行のタイミングがわからないので難しそうです・・・。
オブジェクトが生成された瞬間はx,yともに0の様なのです。
>>540
OnStartすごく便利そうなのに知らなかったです、今後使います。ありがとうございます。
しかし今回はhorizontal layoutのタイミング的に使えなそうです。。
やはり横着せずに自力でレイアウト座標を割り出すしか無いですかね。。
プログラミング自体初心者なのでできるか分かりませんがやってみます。
皆さんありがとうございました。 horizontal layoutの仕組みを確認したいのですが、コンポーネント自体のソースコードってどうやって確認するんでしたっけ・・・。
VisualStudioを使用していて前に出来た記憶があるのですが思い出せません。。 2Dで円の真ん中をくり抜いたようなドーナツ型の当たり判定はどうやって作れますか? >>547
内径 < 対象と中心点との距離 < 外径 >>547
Vector2.Distanceを使って当たり位置と中心位置の差を求めて適当な値の時にfalseにする 用意するもの
L:大きい円のコリジョン
S:小さい円のコリジョン
Lに衝突且つSに衝突していない場合に処理。 Toggleを使ってオンのときにアニメーションが動き,オフのときにアニメーションが一時停止,オンにするとまた動き出すようにするにはインスペクターでどのように設定したらいいんでしょうか? toggleのオンで関数呼んで、そこでアニメオンスクリプト。
オフはその逆で紐つけるだけ。 >>553
すみません。書くのを忘れていました。
Toggle自体の見た目をオフ時に静止,オン時にアニメーションにしたいということです。 あと,アニメーションは少し長めのものを使うつもりで,オフ時は静止画ではなく,あくまでアニメーションの一時停止の形にしたいです。 Toggleにアニメーターをアタッチして、アニメーションがループ再生されるようにしておく。
ToggleのOnValueChangedイベントでゲームオブジェクトにtoggleを、ファンクションに
Animator→DynamicBoolの方のenabledを選択。 >>556
ありがとうございます。その方法でやってみます。 https://i.imgur.com/FhHJTV1.gif
画像のような選択肢の表示は、一般的にはコルーチンを使って行うのでしょうか
カードゲームであることを加味していただけると嬉しいです >>558
待機してるように見えないけど。
Unityならアニメーションの終了をトリガーにすれば良いのでは? >>559
誤解を招く文章でした
アニメーション部分というより、選択待ちの際にコルーチンのwhileを使用しているのかなと疑問でした >>560
この画像通りの処理ならコルーチンいらないと思うけど一般的かはわかりません。
自分ならフラグでカードの拡大と縮小、拡大中のカードを押したら選択完了、拡大中のカードがある時他のカードは操作無効という感じでやると思います。 timeline を使ってみているところですが、
スクリプトからヘッダ位置を変更させる方法がわからなくて困っています。
知っている方、教えていただけないでしょうか。 >>562
PlayableDirector director;
とかやって
director.time = 5f;
で5秒にヘッドが移動するよ DoTweenについてご存知の方いらっしゃいますかね?
あれってUI作る道具ってことでいいんでしょうか
ざっくりした質問で申し訳ありませんが、ご教授お願い申し上げます >>565
値をアニメーションさせるツールだから何にでも使えるんじゃないの
エフェクトに使ってもいいしマリオの移動床みたいなのに使ってもいいし >>566
マジですか!
すげぇ!
使い方があんまりわからないんですが、Proの方もスクリプトでフラグ立てたりして操作するんですかね?
>>567
マジですか……
それはめっちゃ助かります
買うかどうかは分かりませんが見てみたいと思います、ありがとうございます 外に出てワイファイ切れたせいでID変わりました
あしからず >>568
確かproだとコンポーネントが使えるようになってコード書かなくても使えるとかだった
あとやっぱり一番主な使い方はいちいちアニメーションつけるのがファイルが増えたり面倒なちょっとしたUIをリッチにすることなのかな ビルド後、exe側でゲーム実行中にウィンドウサイズを変えると
カメラの外側にあるオブジェクトまで映ってしまいます。
普段エディタ内でテスト再生してたときはカメラの外側は映りませんでした
ゲームタブを独立させてテスト再生中にウィンドウサイズを変えても同様に外側は映りません
どうしたら前者を後者のようにできるのでしょうか >>570
なるほど……詳しくありがとうございます
アニメーション設定はできたんですが、ゲーム内での起動を制御する方法とかご存知ではありませんでしょうか?
常に拡大したり縮んだりしていては困るので……
それから公式のサンプルプロジェクトがあんまり理解できなかったのですが、他になにか教材はないでしょうか?
質問多くてすみません DOTweenはシーケンスにアニメーション(アクション)を順番に登録出来るアセット
主にプレイヤー以外のオブジェクトの移動なんかがツクール並に簡単に記述出来る >>574
ありがとうございます
お言葉を参考にしてつぶさに見てみたところscaleやMOVE、fadeなどでてきたのでそういったパラメータを操作できることはわかりました
そして下のオンプレイやオンスタートなどのイベントを使って起動できるのではないかという予測もできました
しかし肝心のアニメーションの作成の方はどうすればよいのでしょうか?
また、アニメーションは一つのAnimationコンポーネントにつき一つが上限なのでしょうか? 無料なんだから取りあえず使ってみればいいじゃない。 >>575
そっちのアニメじゃなくて移動・回転・拡大縮小の方だね、DOTweenはアクションのリスト登録ができる
アクション中にアニメも切り替えたい場合はアニメーターコンポーネントからアニメーションコントローラーにアニメーションクリップを登録してパラメーターで制御が公式推奨で
旧アニメーションコンポーネントからやる場合は
GetComponent<Animation>().Play("名前");
で動く、複数アニメーションクリップを登録するのはサイズを増やすだけ >>577
すみません、言い間違いました
値をアニメーションさせると言いますか、アニメーションではなくアクションと言ったほうが良かったかもしれません
申し訳ありませんでした
正確にはDoTweenAnimationコンポーネントでアクションを記録する方法と、それから一つのコンポーネントにつき一つしかアクションを格納できないのかということをお聞きしたかったのです
つたない文章でお手間をおかけして申し訳ありません
それから余談ですが、自分はSimpleAnimationというコンポーネントでアニメーションしてます
旧アニメーションの使い勝手でAnimatorも使えるという感じで中々いい感じですよこれ
このスレの皆さんにもぜひおすすめしたいですね…… >>578
なるほど、多分それはDOTweenPro限定のUIプレビュー機能だと思う
なので保存出来るのかすらよく分からない、プレビューで上手くいった値をスクリプトにエクスポート出来るとかなのかな? >>579
ああ、なるほど……
UIの設定をスクリプトに出力してくれるのですか?
それはすごいですね、コーディングいらずは本当でしたか……
もう少しやってみます、本当にありがとうございます >>580
いやPro版の機能だから保存機能あるのかは知らないよ
UIからだからこそ出来る機能ってのは不明で視覚的に操作出来るのがメリットじゃないかな?
機能的にPro版だけにあるのはTextMeshProや2Dスプライトの操作だね カードをgrid rayout groupで並べて
斜めにずらしてカードが重なるように配置するにはどうしたら良いでしょうか? >>582
グリッドレイアウトで並べて
■■■
■■■
■■■
何を斜めにずらすの? >>583
一枚がこんな感じに重なるようにしたいんです。
■■■
■□□□
■□□□
□□□ 重なってるカード同士を親子関係にして親か子のポジションをずらす 最初にすべてのシーンを読み込んで、以降ロードを発生させない様な方法はありますか? ResourceLoadALLじゃなくてAddressablesで非同期ロードすると待機時間ほぼなかったですよ
起動時に全部読み込むと非表示にしていてもフレームレートを奪ってくるので必要な時に読み込んだ方が良いです Unity初心者なのですが、Asset Bundle Browser(ABB)で下記のようなことはできますでしょうか?
※Androidのアプリになります。
@アプリの__dataファイルを取り出す
AABBを使用して、@から画像を取り出す
BAで取り出した画像をpaint.netなどで加工
CABBを使用して、Bで加工した画像を再度__dataファイルに変換する
DアプリにCで作成した__dataファイルを入れてアプリに反映する >>590
申し訳ございません、数字が化けてしまっていました。
1.アプリの__dataファイルを取り出す
2.ABBを使用して、1.のファイルから画像を取り出す
3.2.で取り出した画像をpaint.netなどで加工
4.ABBを使用して、3.で加工した画像を再度__dataファイルに変換する
5.アプリに4.で作成した__dataファイルを入れてアプリに反映する Updateメソッド内でaddforceでオブジェクトを加速した際、この速度変化は次の行へ処理が移る前に完了するのでしょうか。もしくは次のUpdateメソッド実行時になって初めて変化しているのでしょうか。
同じメソッド内の後の行で加速した後の速度を取り込もうとしているのですが、この件が少々不安です。 マウスの移動で視点変更したいんだけど画面の端になると視点が動かなくなるんだけど端になっても動くようなこと出来ない? >>592
物理計算関係はどこで記述すべきか検索して確かめるよろし アセット販売はゲーム販売よりも稼ぐのむずいですか? むずいですね。
よほどいいものでないと。いいものの定義も難しいかと。
ただ、それなりのゲームを作るよりかは、楽に作れるかと思いますが、売れるか売れないかの点ではゲームと同じなので、アセットの方が楽でしょうね。
そして、ここで聞くと言うことは、そもそもリサーチができないと思いますから、云々言われても回答できません。 >>596
リサーチ出来ればいいですが、どの程度の難易度かというのはなかなか分かりづらいです >>594
ありがとうございます。分かりました、調べてみます。 当方Version 2019.3.15f1 Personalを使用しています。
メニューバーの「ゲームオブジェクト」よりBreakPrefabInstanceなる操作をしてくださいと参考にしているサイトに書いてあったのですが、バージョンの違いのせいか、該当箇所にBreakPrefabInstanceの項目がありませんでした。
この項目がどこに移動したのかご教授願いたいです。
よろしくお願いします。 >>599
プレハブのインスタンスを普通のゲームオブジェクトに戻すもので
ヒエラルキーからインスタンスを右クリックでUnpack Prefabを選択するとそれが同じもの
のはず 仮置き用にスプライトから四角を作成→プレハブ化したら背景と色が被って見にくいので色を変えようとマテリアルを適用しようとしたらプレハブ自体が見えなくなってしまいます 2dでマテリアルを使って色変は出来ませんか? エディターのフォントサイズは未だに変更不可能なのでしょうか? >>601
割り当てようとしてるマテリアルか3D用だったりしない?
マテリアルでの色変更は、
そのマテリアルのシェーダーが色を変更できるようになっていればできる。
あと、単純に色を変えたいだけなら
SpriteRendererで変えた方が楽かもよ >>604
すみません
ゲーム画面のことではなくて、エディター自体の文字サイズです
たとえばインスペクターやヒエラルキーなどの文字です あるアニメーションステートに遷移したときに、オブジェクト(人型モデル)の位置と角度をリセットしたいのですが上手くいきません。
StateMachineBehaviourクラスのOnStateEnterで、以下を実行させるスクリプトを作ったのですが、リセットされず…
GameObject.Find("オブジェクト名").transform.position = new Vector3(0f, 0f, 0f);
GameObject.Find("オブジェクト名").transform.rotation = new Quaternion(0, 0, 0, 0);
同様の記述で、ボタンクリック時にリセットさせる動作は出来たのですが、ステート遷移時に動作させたいです。
方法ご存知の方いたら教えて頂けないでしょうか? >>605
うん、だから設定のUIスケーリングよ
古いバージョンにはないけど 日本語表示の時のフォントの方がアルファベットも読みやすいのですが英語のままフォントを変える事も出来ますか?
UI関連の話がでてたのでご存知の方が居れば教えて下さい! >>607
設定を発見しました
やっとできるようになったんですね 外付けSSDにunityをインストールすると、もたつきは軽減するでしょうか
特にauto refreshがhddにとってネックなようです
色々と問題もあるようですが、、、 >>610
エディタのインストール先というよりプロジェクト置く場所が大事
外付けSSDでもHDDよりは早くなるだろうけど、できれば内蔵のPCI-EのM.2 SSDが良い
起動・インポート・ビルド何もかも早くなって快適になる >>611
回答ありがとうございます
プロジェクトの場所が重要なんですね
pciについてはマザーボードの仕様がよくわからないので検討しようがないです(中を見ればなんとなくわかりますが、疎いので、、、
もうフロンティアでは買わないです
そこで外付けSSDかフラッシュメモリを検討していたというわけです
フラッシュメモリではだめなんでしょうか? >>611
usbメモリは速度面でだめっぽいですね
外付け検討してみます 最近のマザーボードならM.2スロットついてること多い
フロンティアのスペック表に必ず書いてあるから見てみ m.2ないですね
pcie1が3つとpcie16が1つですね
これらを使うしかないみたいです 方角を取得したいのですが、方角というのはvector3では表せず、行列を使うと記憶していたのですが、間違っているでしょうか?
左右キーでカメラを回転させ、カメラの正面方向にキャラクターが進むというシステムを作りたいです 作るよりStandard AssetsのFPSController使ったほうが早い
もし作るにしても、これのスクリプト見て勉強したらいい using UnityEngine;
using System.Collections;
public class FadeOut : MonoBehaviour
{
AudioSource audioSourse;
double FadeOutSeconds = 1.0;
public bool IsFadeOut = true;
double FadeDeltaTime = 0;
void Start()
{
audioSourse= GetComponent<AudioSource>();
}
void Update()
{
if (IsFadeOut == true)
{
FadeDeltaTime += Time.deltaTime;
if (FadeDeltaTime >= FadeOutSeconds)
{
FadeDeltaTime = FadeOutSeconds;
IsFadeOut = false;
}
audioSourse.volume = (float)(1.0 - FadeDeltaTime / FadeOutSeconds);//★
Debug.Log(FadeDeltaTime);
}
}
} ↑音を1秒間でフェードアウトさせるコードです
FadeDeltaTimeで処理時間を記録
FadeInSecondsでフェードアウトの時間を設定
(1 - FadeDeltaTime / FadeOutSeconds)で少しずつボリュームの比率を0に近づくようにしています。
質問なのですが、FadeOutSeconds を5秒にした場合、★(5.0 - FadeDeltaTime / FadeOutSeconds) でボリュームの非を小さくすると思うのですが
いつまでたっても音が小さくなりません。
どうしてなのか分かる方いたら教えてください。 シーンの保存とプロジェクトの保存の違いがいまいちよくわかっていないのですが、プロジェクトの保存をすべき場合というのはどういったケースになるのでしょうか?
よろしくお願いします。 >>618
2019版のstandard assetsがないようです
旧版で使うものでしょうか >>620
諸々の値を表示してテストしてみなさい。 (1.0 - FadeDeltaTime / FadeOutSeconds) でいけました。
引き算と割り算をする順番を間違えていました。
どうもありがとうございます。 ArgumentOutOfExceptionと言うエラーをlist.Countでforを回す時等によく出してしまうのですが、具体的にどこの行(や変数)でエラーが出ているかと言うのを探す方法はありますか?
VSを使っていますがデバッグの方法などが一切わかりません。
どうか助けてください! VSなら例外でたタイミングでデバッガ止めるようにするだけじゃ?
例外設定でとりあえず全ての例外で停止するようにすればいい >>627
やってみましたが、よく分からないので諦めます。。
unityのコンソールには赤いビックリマークでエラーが出ていますが、VS的には問題ない(設定や使い方が間違っている可能性もあります)みたいです。
例外の設定もすべてチェックマークがついていました。
VSのデバッグの開始を押してからUnityの再生マーク押せば良いんですよね? unityエディタのファイル量は5GBで、プロジェクトが1GBだとすると、単純に6GBが必要な容量と考えていいのでしょうか?
SSD化しようと思っていますが、SSDは高いので128GBで検討していますが、とりあえずはこれで十分でしょうか? >>628
コンソールのエラー文の中にどのスクリプトのどの行です、って書いてあったような。
とりあえずlist[i]みたいにiを使ってる行の直前でDebug.logでiを書き出してみたらいいんじゃない? >>630
0時くらいからずっとハマってたのですが、1フレーム後から(?)しか受け付けない初期化問題だったようです。
AwakeとStartに分けてもエラーだったのでずっと気付かなかったのですが、StartとUpdateに分けたら動作しました。
別の質問になってしまうのですが、こういう場合Updateで一回しか通さない様にして使うしかないのでしょうか?
ゲームスタート直後の遅延初期化で良い方法ってありますか? >>631
Startでコルーチンを呼んで、1フレーム待ってから処理、とか?
でも、処理したものをupdate側で即使う可能性があるなら、
その対策は必要になると思います。 >>632
なるほどコルーチンも試してみます!
そもそもAwakeとStartに分けても動作しないってどういう原理なんでしょうかね?
Awake内で全ての生成が終わる前にStartが呼ばれてるとしか素人目には予想できないのですが、そうしたらあんまり意味ないですよね。
生成に時間がかかってるとしたらupdateでも何回かエラーが出た後に成功しそうですし。。
動けば良い気もしますが、実行端末の性能が遅いとupdateでもエラーなんて落ちがありそうで怖いです。 >>633
私は幸いまだそのケースに遭遇したことがないのですが、
どういう状況で起こるのか知っておきたいです。
再現できる最小の構成を教えてもらえると助かります。 ゲームオブジェクトが参照している3Dモデルを変更(更新)する方法をご存じないですか?
Blenderで自作した3Dモデルを使っていたのですが、アニメーションを追加したいので新しい.fbxに置き換えたいです。
よろしくお願いします。 >>635
このことに加えて別々の3Dモデルに同じコンポーネント群を付与したいというのもあります。 >>635
同じか分からないけど自分も似たような事で悩んでたけど>>508の言うような
方法じゃ駄目ぽい?
>>507-510 >>635
コンポネントの複製はCopyComponent、PasteComponentAsNewでググればだいたいわかるはず
着せ替えとかしたいんであればFBXを事前にプレファブ化しておいて起動時にまとめてロードしておき
必要な時に対象のモデルと差し替える 個人制作の場合、やはり3dより2d中心でやったほうがいいでしょうか
3dは大変ですよねいろいろ 自分の作りたいゲームのジャンルで決めて
楽だからコッチみたいな理由で決めたら挫折するだろうし 両方作りたいんですけど、やはりあれこれ手を出すのでは成功しないですからね、、、
2dだとmoonのようなrpgで、3dはマリオ64のようなアクションゲームです。 >>640
自分も初心者で両方やったけどゲームとして動かすだけなら3Dの方が楽かもしれない。
そもそもUnityが3D向け機能ばっかりだしアセットストアも2Dの素材ほとんど無い。
全部素材はオリジナルでクオリティも製品レベルにしたいですっていうなら2Dのほうが楽だと思う。
3Dの自作覚えるのキツイし外注するにも2Dの方が安い。 >>642
その二択だったら圧倒的に3Dの方が楽。
そもそもRPGがイバラの道。 好きなようにやったらええがな
全く別ジャンルのゲームを作るのも悪くはない
行き詰まったときの気分転換にもなる 同時進行してみる
あと2dパズルも作りたい
1つに注力したほうがいいんだろうけど、色々やってみたいことはある
できるかどうかは別として >>637
なるほど...!
ちょっとやってみます >>647
自分も3Dモデルの切り替えを頻繁にやるので大変さ分かります。
画像のようにモデル移行する場合は位置を0.0.0に合わせてから。
スクリプトでAnimatorを使っているならアバターの切り替えを忘れずに。
と言っても自分も素人で人様に教えれるような立場じゃないんですけどねw
頑張って下さい。
https://i.imgur.com/rq2HERN.jpg >>648
横からすみません、オブジェクト名に日本語って不都合や注意点ありますか?
アタッチでバグるとかFind出来なくなるとか。
素材(スクリプタブルオブジェクトや画像など)の名前にも日本語付けてもいいんでしょうか?
頑張って全てローマ字でやってきたのですが、プロジェクトが巨大になってきたら目的のファイルがパッと見つからないのがストレスで。 >>649
自分も初心者なので何処まで参考になるか分かりませんが、取りあえず日本語使っている事が原因のバグやエラーは
今のところ出ていません。
でもネットとかで見ると英語が基本みたいですよね、自分の場合はリスクと
利便性を考えて日本語にしちゃってます。 >>649
追記
スクリプトとか画像とかも日本語使ってます。
ただプロジェクト名も日本語にしてたらコントローラーバインド設定でバインド設定画面に行けないって不具合があったのでプロジェクト名は英文字にしています。 >>650
ありがとうございます。
空のオブジェクトで仕切るのは良いアイデアですね!
不安ならビルド前に消すこともできますし。
自分でも色々試してみます。
クラス名や変数名に日本語使っても動くらしいので大丈夫だとは思いますが時限式の不具合出たらめんどくさいですからね。 unityは2dでも不自由ないんですか?
2dならgodotのほうがいいんでしょうか? 済みません、初心者ですが、質問です。
HDRPの環境でプロジェクトを作っていますが、Shader Graphを使って、
半透明的な表現や歪みテクスチャを、自作のモデルに適用したいです。
マテリアルはこんな感じ↓です。
https://dotup.org/uploda/dotup.org2169029.png
でも、再生しても半透明になってくれません。
UniversalRPでのdepth textureやOpaque texureみたいな設定項目って、
HDRPにもありますか?それとも別途コードを書かなければいけませんか?
なんでも質問スレとマルチになってしまい恐縮ですが、どうぞご回答いただければ幸いです。 654ですがUniversalRPの環境で作り直したので、大丈夫です。自己解決です。 unityはアセットの審査がめっちゃ厳しいと聞きました。
本当でしょうか。
アセット販売はハードルが高いですか? クオリティチェックが厳しいらしいな
素人の初心者にはハードルが高いと思う 初期はともかく、最近は厳しいらしいという記事を見ました。
まだクソゲーとしての需要があるだけ、クソゲーとして出すほうがハードルは低いかもしれませんね。
ありがとうございました。 初心者です。
UniversalRPの環境で、Vfx Graphやろうとすると、使えないノードとかコンポーネントってあるんですか?
具体的には、トレイルを作りたかったので、Trigger Event RaateをUpdateブロックに追加しようとしたのですが、
検索しても出ないです。 自己解決しました。
Preferenceからチェックを入れれば良かったんですね。
分かりにくいです。 初めまして、始めて質問させて頂きます。
先日BoothというサイトでVRMモデルを購入して
PCゲームのVRCで使用するVRMモデルをUnityで導入したときにモデルが黒くなり色が付きません。
モデルをVRCにアップロードしてみましたが、案の定黒いままでキャラクターもT字のまま動きません。
どのように解決すれば良いでしょうか? GameObject obj = transform.GetChild(1).gameObject;
print(obj);
ツリーから子オブジェクトを取得する場合こうなりますが、なぜオブジェクトを取得するのにtransformクラスを使うんでしょうか? 初歩的な質問ですみません。
Rigidbodyで設定できる「抗力(Drag)」とは速度にかかる係数(単位[Ns/m](秒速にこの「抗力」をかければ抵抗力のニュートンの大きさになる))という理解で合っていますでしょうか? 追加の質問で申し訳ありません。
Animatorをいじっているのですが、Updateメソッド内のSetTriggerを用いて画像内で選択されている推移を行おうとしたところ上手くいきませんでした。推移が実行されていないようです。
AnyStateから同じようにしてつなげるとうまくいきました。
原因として何か考えられることはありますでしょうか。
お力添えよろしくお願いします。
https://imgur.com/a/CCdnZ8l >>667
この件に関しては自己解決しました
「終了時間あり」のチェックを外すことでSetTrigger実行から即時に推移させることができたようです もう一つ別の質問をさせてください
ある決まった2点間でオブジェクトをベジエ的に(ゆっくり→速い→ゆっくり)動かそうとして、手計算によって求めた必要な力積を与えると5%程距離が足りず、ではアニメーションによって指定位置まで動かそうとしても10%程距離が足りませんでした
前者は物理演算の誤差であると腑に落とせますが、後者は指定した座標まで移動しないということで腑に落ちません
これはどういうことなのでしょうか
もしよろしければ2点間のベジエ的移動の実現案も提案していただければ幸甚です IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip タイトル画面のスタートボタンを押して画面がフェードアウトした後、
時間差でシーンが切り替わるようにしたいのですが
フェードアウト中に何度もボタンが押せてしまうのですが、
スタートボタンを押したら他のボタンも無効可したい場合どのようにすればいいのでしょうか。 向こうにしたいタイミング中に透明なパネル出現させとく >>673
ボタン押されたらボタンを消すようにしたら、連打しても大丈夫でした。有難うございます。
>>674
透明なパネルをボタンより前面のレイヤーに表示したらボタンをガードできました。
連打しても大丈夫でした。有難うございます。 Vfxを使ってると、再生時になんか1フレームだけ、馬鹿でかいパーティクル?
がチラチラしていて、しかもそれが頻繁にあってウザいんですが、
何か解決方法はありますか? unityでデスクトップアプリケーションも作れるといいますが、実際にはあまり使われていないのでしょうか?それはなぜですか? 別にUnityで作る必要がないからでは?
Unity製PCゲームなら多少はあるよ
モバイルと比べてPCなら他の選択肢も多いから数が少なくなるのは当然 ダメではないけど普通に作るとタイトルロゴが邪魔なのがアレすね なるほど、3d関係でない限りunityを使うメリットがないんですね そもそもゲームエンジンなんだけどゲームではないアプリケーション開発になんでゲームエンジン使うの?
2Dでも画像やアニメーションを多用するようなアプリなら開発しやすい面もあるだろうし、そのアプリをマルチプラットフォーム展開するならUnityでやる価値は大きくなるだろうし 開発環境に慣れていればそういう選択肢もありかなと
ただ、慣れよりデメリットが大きければ他を覚えるでしょうけど じゃあ3Dじゃなければメリットがないなんて結論出てこないよね? ゲームエンジンだけど建築やら車のUIやらデジタルアートやら色々使われとるけどね、結局実現したいこととマッチしてるかどうかじゃないのかな Androidベースのアプリケーションは知らずに使ってるものも多いだろう https://i.imgur.com/RvWRL0V.jpg
質問です
先日ゲームが完成したのですがどうも重いと思いましてプロファイラーで
チェックをしてるところです
この画像がその画面ですが
一部処理が突出したポイントを見ると「EditorLoop」というものの処理が
高まっています
この「EditorLoop」をググってもなんのことかわかりません
一体なんなのか教えていただけないでしょうか? >>670
これは便利ですね
ありがとうございます!解決できなかったら使ってみます シェーダーをいじっているのですが、"o."とはいったい何を表しているのでしょうか?
ご教授よろしくお願いします。 unityの重さというのは多くがhdd起因でしょうか?cpuはそれほどでもないようです。128gbのssdを購入します。
またglslにはデバッガーはありますか?renderdocなどを使用するのでしょうか? アセットストアで買った素材を他のソフトウェアで使っていいって書いてあるけど
心折れたらRPGツクールに素材持っていってもいいって事ですか!? >>691
特に起動とauto refresh が重いですね 3Dオブジェクトのアニメーションで斜めの軸で回転させる方法はありますか?
地球の自転を再現したいのですが… unityの個人製作者は2dが多いのでしょうか
普通に3dもいけるのに、なぜ? アセットの数を数えてみな
3Dが2Dの3倍以上あるから
2Dでやってる奴は国内だと本とか解説が多いからだろう https://qiita.com/morio36/items/3de164d6131c902af9bd
ダブルタップはこのページを参考にしてできて
トリプルタップを自分で作ろうとしたのですがうまくいきません
3タップする前に2タップで反応してしまいます
どうすればいいか教えてくださいお願いします 2タップでもうワンクッション見ればいい。
原理は同じだから。 オブジェクトAからオブジェクトBに線を引こうとしていますが
線がすべてのオブジェクトの後ろに描画されてしまって困っています。
背景:2D→スプライトレンダラー
オブジェクトA,B:UI→ボタン
線:LineRenderer
LineRendererの「ソート用レイヤ」「レイヤーの順序」を弄っても常にすべての後ろに表示されます。
LineRendererの座標Zを0から-1に変更したところ、背景よりは手前に表示されるようになりました。
Zを-1にしたことでカメラに近づいて手前に表示されるようになるのはわかりますが、
なぜ「ソート用レイヤ」「レイヤーの順序」が効かないのでしょうか。
また、LineRendererの線をuGUIオブジェクトより手前に表示させることはできるのでしょうか? >>701
キャンバスのスクリーンスペースを変えれば解決します。
たぶんオーバーレイ→カメラだったはず。 >>699
二つ目のクッションのやり方は
一つ目と同じじゃダメですよねifの置き方とか
3タップ目を待たせるのはどうすればいいか
ヒントください >>702
ありがとうございます。
線が一番手前に表示されるようになりました。
ただ、オブジェクトの座標がcanvas座標からworld座標に変わってしまったようです。
(しかしインスペクター上では変わらずcanvas座標のまま)
オブジェクトを動かす計算は全てcanvas座標で行っていたので、動きがめちゃくちゃになってしまいました。
計算をやり直すか別な方法で線を引くか検討してみます。 >>704
その辺は個々の状況によるので明確な答えはアドバイス出来ませんが、座標を変換する方法は結構簡単なので調べればすぐ解決すると思います。
ScreenPointToLocalなんちゃら〜とかがUnityに最初から用意されてるので検索してみて下さい。 >>703
ダブルタップ処理に行く前に、トリプルタップタイムを見るだけでしょ? >>706
ありがとうございます
数パターン試してるのですが
なぜか再生してダブルタップしただけで
トリプルタップ用の動作が発動してしまいます
トリプルタップタイム開始のタイミングとかがダメなのか
あとトリプル用のフラグも試したのですが
変わらなかったです >>707
すんごい単純な多数クリック検出
void Update()
{
TouchCheck();
}
void CheckCount()
{
print(clickCount);
clickCount = 0;
}
void TouchCheck()
{
if (Input.GetKeyUp(KeyCode.Mouse0))
{
CancelInvoke();
Invoke("CheckCount", 0.3f);
clickCount += 1;
}
}
この件で質問あれば弟子の常駐スレ
Unityで何かゲームを作りたいんだがね
https://mevius.5ch.net/test/read.cgi/gamedev/1452084824/
にて https://youtu.be/2QI0I8qVQLY
FadeCanvas キャンバス
BlackFadeIn スプライトにアニメコンポーネントを付けたオブジェ
キャンバスの子にゲームがフェードインするアニメーションオブジェを入れて
キャンバスの設定を Screen Spase - Overlay から Screen Space - Camera に変えてMain Cameraを設定すると
フェードインアニメが映らなくなってしまうのですが、どうしてでしょうか。 使用してるUnityバージョンは、2019.4.0f1
このページみならが、C#スクリプトをeditorフォルダにunity project windowsからインポートし、機能はするが…
の作者のgitからスクリプトそのものをダウンロードして使ったんだが。
なんか、文字が重複してて余計に見にくいというか…
スクリプトもそんな長くはないので見てるけど、しばらくUnityから離れてた影響でわからない。
https://i.imgur.com/bXoo2Lk.png
このスクリプトのどこを書き換えたりしたらいいのかわかる人いますか? Javascriptはソースが他人に見られるらしいですが
UNITYで作ったWEBGLもソース他人に見られますか? あ、Unity Editorのproject Windowのステータスバーに拡張子も含めた名前が書いてるではないか…
そして、エクスプローラーで表示で普段使てるファイラーで表示できるじゃないか…
特に宗教的理由でもないかぎり、いちいちファイル拡張子表示のスクリプトなんて要らなかったんだ。
まあ、一応自己解決ということでお願いします。 Textを配置して移動させるとき、Textを選ぶと画面の外枠のラインが消えてしまうのですが、
Text選択時に表示したままにするにはどうしたらよいでしょうか? シェーダーをいじっているのですがsurfメソッドの引数のinoutとはどういう意味なのでしょうか? 特に難しい意味じゃなくて入出力(in/out)
入力としてパラメータを渡す事も出来るし、出力結果を関数外で使う事もできる
これはGLSL用語で、SurfaceシェーダーはUnity独自で潰しが効かないからGLSLを勉強した方が情報量も多いよ
https://qiita.com/aa_debdeb/items/5055ed05c8c5cb45f76e 画面サイズに拡大した画像(例えばパネル)の端っこに1px(体感)くらいの隙間があって、裏においてあるオブジェクトの背景が見えてしまうのは仕様ですか?
どうにかする方法はありますか? >>713
ないと思う。
C#はJAVAアプレットと同じく中間言語にコンバートしたやつをプログラムに用意して、実行するときはコンピュータがその中間言語を機械語で理解して実行するしくみだから。
JAVAのアプレットとかの言語のソースコードがC#にそっくり。
仮想マシーンはなにかはわからないけど、.NET Flame Workだかかな?
想像だけど。
だが、この中間言語って考えって、リバースエンジニアとか楽にできそうだなとは思うけど。 実行速度ははるかにC#のほうが断然JAVAより速いと思うけど。
なぜかJAVAのほうばっかり人気だよね。 今UIの実装の勉強しようとこれの3の無限スクロールを参考にしてるんですけど どうすれば画像をセル部分に埋め込めるかがわかりません。。
https://github.com/setchi/FancyScrollView
とりあえず遷移は置いておいてセル部分に画像を差し替えたいです。 >>724
元のC#ソースとはだいぶ違うと思うけど
後で確認してみようかな
高速化のために難読化されてると思う
※推測
かなり難しいはず >>631
条件を満たしていることを確認してから実行したら良いような
例えば、経過フレーム数とか何かのオブジェクトを参照してからとか UI作ってるんですけどミキサーの音量をsliderで管理する方法が分かりません >>728
1 sliderを動かして値を取得する
2 その値を音量に設定する
一つずつ問題を解決していけば出来るようになると思う アセットをとりあえずお試しで使うってのは無理でしょうか。
今まで、これはいいだろうと思って買ったけど、結局思ったようなものでなく使えなかったというのがあまりに多くて。
今 ↓これを試したいのですが1.8万もしてとても気軽に試せません。
https://www.asset-sale.net/entry/RayFire_for_Unity
こういうのってどこかでお試し使用ってできないものでしょうか? >>729
マジでうまいこといかない
どうしたらいいんですかね
っていうかなんでaudiosourceはslider内にVolumeってあるのにmixerにはないんですかね >>730
販売元と交渉しかないのでは?
あとは、持ってる人に使わせてもらうか。持ってる人が近くに現れるといいね。 >>731
ミキサーはちょっとややこしいね音量もデシベル変換とかしないとスライダーの数値のままでは使えないっぽい
https://qiita.com/matsumotokaka11/items/2eb0e7ac34c6dec3f80b
サンプル作成とか必要なら僕のスレにて
(ただしちゃんと出来るかはわからんけどね) >>733
そうですか。やはり普通には無理なのですね。
ありがとうございます。 >>732
これでめちゃめちゃ簡単に行けました
ありがとうございます Instantiate関数で第二引数にnew Vector3とかtransform.positionを指定すると
cannot convert from 'UnityEngine.Vector3' to 'UnityEngine.Transform'
などと出るのですが,どなたか対処法をご存知ありませんか? >>737
引数2つの場合は(複製元,親transform)だから。
位置を指定したいなら、引数が3つか4つのパターンでないとダメ。
(複製元,位置、回転)か、
(複製元,位置,回転,親transform)
このどちらか。 >>738
ありがとうございます!
この方法でうまくいきました。
回転そのままでもちゃんと第3引数まで書かないとだめなんですね。 スクリプトの編集にVSCodeを使っているのだけれどtipsとか補完とか出来るようにしたい
リファレンスはインスペクターの?マークからwebサイトに飛んで見てるけどもっと便利な方法があれば知りたい 初心者質問です
マリオ風の基礎的な2Dアクション作りたいのですが
タイルを配置してマップ作っていくって場合
タイルの数の制限とかってあるんでしょうか? vsの個人向けライセンスだとvs codeでは使えないものが使える?
vs codeなのは会社でvsのライセンスを購入してなかったから同じ環境のにしただけ
元々はunity用ではなくて他の言語で使ってた
別途vs入れるのが面倒だったからそのまま使ってる > もっと便利な方法があれば知りたい
vsを入れる 初心者デザイナーです
検索しても解決策が分からなかったので縋らせてください…
sceneで直接オブジェクトを選択する時、hierarchy上のオブジェクト項目も自動的に選択される時とされない時があります
されない時はいちいちhierarchy上のprefabを開いて一つ一つオブジェクトの場所を確認しなくてはならず、とても無駄な工数がかかってます
sceneでオブジェクトを選択した時、hierarchy上のオブジェクトの場所も分かるようになりませんでしょうか(たまにちゃんとオブジェクトが開いて選択される時があります…)
Unityは2018.4.18、Windowsです
わかりづらい文章ですみません
御教授頂けると助かります…!!! >>745
vsを入れたらvscodeではできない何ができるようになる? canvas上に重なってる複数のオブジェクトが反応してたどり着くまで時間かかるとかそもそも反応してないのかよくわからんが
後者ならハンドツールが変なの選択されてるとか >>746
そんな事にはなってないなぁ。
シーンでクリックすれば必ずヒエラルキーも選択されるよ。
バグってるようにしか見えないね。 >>750
まじすか…sceneで子を選択した時、ヒエラルキーの閉じてる親オブジェクトも開かれて子が選択された状態になりますか? >>751
一度、空オブジェクトで三重親子作って最深層にcube置いて試してみては? ノベルゲーム作ろうと思ってるんですがいきなり宴とかのアセット使ってつくるかんじかそれともとりあえずunityだけで作る方がいいのかどっちがいいんですかね >>754
貴方の力量が分からないからなんとも。
まずは、unityだけで骨子となる部分をざっと作ってみる。 >>755
1週間ほどunity触って超基本的なことは出来るようになってきたんですけどいかんせんスクリプトを自分で組めない状態です >>756
それってUnity使う意味あるの?
ノベルゲームなら色々ツールありそうだけど。
スクリプト組めるようになりたければ自分で挑戦してみたらいいし人に聞く様な事でもない。 >>757
せっかくだからunityになれといたほうがのちのち幅がきくかなと 時間許すなら勉強がてら組む練習してもいいと思いますよ。 >>758
冷たい言い方になっちゃうけど、好きにしろとしか・・・。
とりあえず好きなやり方でやってみて、ググってもわからないような事があったらまた書き込めばいいんじゃないかな。 UnityやるならエディタはRiderがいいぞぉ
お金かかるけど 教本のスクリプト丸写し+改変で軽いゲームを一、二本作ったら勉強になるで
バックにノベルゲーム用に描いた立ち絵を配置してゲームをクリアしたら表情差分が変わるようにする
このレベルのことでもスクリプトベタ打ちで一通りやってみると自分で調べなければわからないことが多い >>748
vscodeでもできるようだな
vs入れろっていうのは役に立たないレスだったな ハイスペックPCでunity使い始めたんですがすぐCPU使用率が100%になります
GPUはほぼ0%なんですが極力CPUに負荷がかからない方法や設定ってないでしょうか?
スペックは
CPUcorei7-9700
GPUgeforceRTX2060super
メモリ16GBです >>765
LightingウインドウのAuto Generateをオフにしましょう >>766
おおー出来ましたありがとうございます! Blender等の3DCGで作ったモデルをUnityに持ってくる場合、
レンダリングによるCGの綺麗さはUnityのレンダリングによって決まるのでしょうか?
それともBlenderでいうところのEeveeやCycles等の3DCG側のレンダリングソフト依存で
UnityにもってきたCGの綺麗さは決まるのでしょうか?
3DCG用のレンダリングソフトを買おうと思っているのですが、Unity依存でしたら買う必要がないのかなと・・・ ポリゴン数とかトポロジーとかテクスチャとかそこら辺が綺麗さに関係すると思う そこまで初心者のうちは標準機能のみで頑張る事だけを考える
Blenderのみでやるとしても十分なレンダリング品質だからな
何かの広告とかに洗脳されてレンダラー必要と思いこんでる感じがする
UnityとBlenderどちらが楽にハイクォリティーな絵を出せるかはBlenderだと思う
リアルタイムで動かさないと絶対ダメでない限りUnityでの出力は色々と苦労する事を前提に考えて blenderで
テクスチャとアニメーション割り当てたままエクスポートするには
.fbxではなくglTF2.0でエクスポートする必要があると
書いてあるのですが
アセットストアの素材とかはふつうは全部割り当ててあって
しかも.fbx形式のことが多いような気がするのですが
まりがいでしょうか? Unityでゲーム作られてる方が此処には
多く居ると思うんですが、何処で公開されていますか?
steamやDLsiteで販売するようなガチ勢じゃなくて、素人に毛が生えた程度のゲームを公開して意見とか感想を頂きたいからいい場所はないものかと。
探してもフリー配布で良い場所が見つからないんですよね、やっぱりfantiaとかCi-enが主流なのかな。 >>775
見てきました!今までUnityroomの存在を知りませんでした、ありがとうございます。
ただ作ってるゲームはVR専用で3Dモデルはboothから購入してるんですよね・・・VRも可なのか、完全オリジナルじゃないと駄目だったりしないのか確認して問題なさそうならUPしてみます、ありがとう。 WASDで操作するFPSをジョイスティック化って楽にできるものなのですか? >>779
具体的にはどうやるんでしょうか
キャラの移動に使ってるスクリプトに書き加えるだけなんです? >>780
unity joystick
でググりなさい。 無知ですいません
これは空のオブジェクトにジョイスティックのテクスチャを追加していくイメージであってますか?
その場合のスクリプトって公式であったりしないんでしょうか イメージなどと言う主観はどうでもいい、ググりなさい。先人達がかなりいるからjoystick実装なぞすぐ解決する。 入力用のメソッド使ってたら何もしなくても受け取れるんじゃないか?
独自で入力イベント処理してたらそれを修正したら良いんだと思うが >>783
スマホ用のバーチャルジョイスティックを実装したいってこと?
もしそうならアセットストアでjoystickとかで検索するといい。 Scene4 Scene5 Scene6 Scene7
Scene4にAudioSourceコンポーネントがついたオブジェクト(bgmObject)を置いて
Scene5 Scene6 でもずっと音楽が途切れないで鳴り続けるようにしてから
Scene7になったら音楽が止まるようにしたいのですが、どのようにすればいいでしょうか?
bgmObjectにDontDestroyOnLoad(gameObject);を書いたのスクリプトを付けて、
オブジェクトが破壊されない方法は分かりましたが、Scene7で消すようにしたいです。 >>786 そうですその通りです
現在はPC向けの操作になってるものをジョイスティックを追加してスマホでも操作可能にしたいのです >>787
AudioSource.Stop()で再生を止めるのではダメなの?
あと、DontDestroyOnLoadはシーン遷移時に破棄しない、というだけなので
Destroy()で任意に破棄することはできるよ
>>788
自分で実装したいならここで説明するよりググった方が詳細な方法が見つかると思うよ アセットストアでゲームのアセットを買ったら
ゲーム画面のスコア表示に「これまでのあなたの最高記録」みたいのが表示されるのですが
これは端末情報にアクセスかなにかしないと無理ですよね
ということはこのアセットを使う場合は
アプリの権限のうちどれを使ってると表示しないといけなくなるのでしょうか IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip Androidのサイズ制限について調べたんですけど
.apkなら拡張.obbに対応していて
.apk 100mbに加えて2GBの拡張が使えたのに対し
64bitしてからは
.aabを150mbまでしか使えず拡張もなし
ということで規模を縮小しないといけない感じであってますか?
一応500mbまでのベータテストはやっているようですけど
マルチですみません Unityの使用規約って、Unity使っての収入額?、Unity使ってないプログラムの収入も含む?、別業種の(例えばコンビニバイト)収入も含む? ウーバーイーツは個人事業主になるんだが対象になるってことか? まずその質問をする意味が分からないんだけどドルと円を読み間違えてないか?
Unity Personalのリミットは年収100000ドル(現在の為替で1068万円)だぞ?
年収それくらいあったら無料版じゃなくて月5000円の有料版買えって言われるのは当然だし普通こんなスレに来てる奴は超えてないだろ? >>789
Destroy()で破壊する方法を使うことにしました。
Scene4 Scene5 Scene6 だけで音楽の付いたオブジェを鳴らしたいので
SceneManager.GetActiveScene().name でシーン名を取得して
------------------------------------------------------------------
using UnityEngine;
using UnityEngine.SceneManagement;
public class musicplayer : MonoBehaviour
{
private void Awake()
{
if (SceneManager.GetActiveScene().name != ("Scene4" || "Scene5 " || "Scene6"))
{
Destroy(gameObject);
}
else
{
DontDestroyOnLoad(gameObject);
}
}
}
----------------------------------------------------------
このようにコードを書いたら
//CS0019 演算子 '||' を 'string' と 'string' 型のオペランドに適用することはできません
というエラーが出たのですがこの場合どのように対処したらいいのでしょうか。 >>797
aが(4または5または6)ではない
そういう人間が使う言葉のような感覚にはできない
aが4ではなくかつaが5ではなくかつaが6ではない
という書き方になる
if (a != "Scene4" && a != "Scene5" && a != "Scene6")
これでエラーは出なくなると思うが
これで解決するかどうかは知らない if (System.Text.RegularExpressions.Regex.IsMatch(SceneManager.GetActiveScene().name, @"Scene(4|5|6)"))
{Debug.log("return True")}
正規表現検索汁 @"Scene([0-3]|[7-9])"とか正規表現パターンで[4-6]を避けてもいいか >>798の描き方と
>>799の正規表現の描き方、両方ともエラーが消えたのですが、
Scene4 から始まって Scene7 になってもBGMオブジェクトは消えませんでした。
private void Awake()
{
Debug.Log("Awake()関数が呼ばれた");//シーン遷移時にAwake()関数が呼ばれているか調べる
if (System.Text.RegularExpressions.Regex.IsMatch(SceneManager.GetActiveScene().name, @"Scene(4|5|6)"))
{
DontDestroyOnLoad(gameObject);//Scene4のBGMオブジェクトを次のシーンへ引き継ぐ
}
else
{
Destroy(gameObject);
}
}
Awake()関数は Scene4 で一回呼ばれただけで、Scene5 以降、シーンが変わっても呼ばれないことが分かりました。
なので Scene7 以降も BGMオブジェクトは消えなかったです。
教えていただいてコードの描き方は分かったのですが、この方法では無理だったみたいです。
また別の方法を考えないといけないのですが、いいアイデアはないでしょうか? Scene7にいったらbgmオブジェクトを消せばいい
一度dontdestroyonloadび登録したら以降、任意に操作しない限りずっと残る void Awake()
{
DontDestroyOnLoad(gameObject);
SceneManager.sceneLoaded += SceneChanged;
}
private void OnDestroy()
{
SceneManager.sceneLoaded -= SceneChanged;
}
void SceneChanged(Scene scene, LoadSceneMode mode)
{
if(scene.name == "Scene7")
{
Destroy(gameObject);
}
}
Awakeはインスタンスがロードされたときに1回呼ばれるだけだから、シーン判定と削除しょりをそこでやってもダメ。
シーンが移動したときに起きるイベントがあるので、それを検出できるように登録しておいて
シーンがロードされたときにSceneChangedが呼んでもらえるようにする。
SceneChangedは好きな名前でおk
まあSceneChangedでやってることをUpdateで毎フレームやっても別にいいけどね・・・ >>802
BGM管理しているオブジェクトをシングルトンにする
BGMをOFFにするメソッドを用意する
シーン7の初期化Startで
BGMをOFFにするメソッドを呼び出す
となるのかなあ
俺はDontデストロイonloadは使わないので具体的にはしらん >>803
Scene7のスタート関数で削除する処理を試してみたら成功しました。有難うございます。
>>804
イベントハンドラという方法があったのですか。これなら削除したい場所のシーンの名前を複数設定できるし、
他のシーンに削除する処理を書かなくていいので良い事尽くめです。この方法で削除の処理をします。有難うございます。
>>805
DontDestroyOnLoadかシングルトンという方法を使うか迷ったのですが、今回はシングルトンを覚えなくても乗り切れそうです。
いつか覚えることになる宿題になると思います。有難うございます。 timelineでsphereを横に動かすだけの最短の手順を誰か教えてくれませんか?
チュートリアルいくつ見てもやり方がわからない.
timelineアセットを作る
timelineにanimation trackを追加する
animation track にsphereを登録する
RECボタンを押す
↑ここでボタンが押せずに詰んでます
よろしくお願いします >>790
これお願いします。
現在権限はwifiだけにしてます 808ですが、
別の手順として
https://xr-hub.com/archives/10835
例えばここの[Add From Animation Clip]->[Animation1]
という手順を踏もうと思って右クリックしても
そんな内容のメニューは出てきません…
ただシンプルにキーを打って動かしたいだけなのにこんなに難しいものなんでしょうか…
本当に困っているのでどなたか解る方助けて下さい。
お願いします。 >>790
ちょっと状況と何が知りたいのかが不明瞭すぎる
記録を保存するだけなら端末情報へのアクセスは必要ないと思うけど >>811
わかりにくくてすいません
このアセットを使ったゲームでプレイして
一旦アプリを閉じてから開いても
最高記録の数字が維持されてるのは
アプリが端末を同じものと特定してて
こういう場合は「アプリの権限」に
記載しないといけない項目に該当するのかなと
記録を保存するだけなら端末情報へのアクセスは必要ないのなら
特に記載する必要はないってことですね
ありがとうございます >>812
具体的に例でいうとこうかな?
自分で出したハイスコアはアプリ再起動でも保持されている、だから何処かにアクセスしてると。
他人のハイスコアが出てるならオンラインだけど、自分の記録だけなら、アプリ内には自由に読み書き保存できる領域があるのでそこを使ってます。 >>795
Unity使って料理の運搬とかするならまあ金払わないとじゃ?
1000万売り上げあるならだけど >>808
こんなんで分かるかな?
https://imgur.com/W5xD3hR
環境はUnity2018.4.22f1
これに関しての質問は
Unityで何かゲームを作りたいんだがね にて
こっちでは検証しない、上から目線、マウンターがいてうざいので >>815
ご丁寧に有難うございます、
今開いてみましたのですぐ実践してみます! >>815
すみません、やはりダメでした
赤丸の部分が押せず、recording状態にならないみたいです。。 事情があって2019の4.0f1を使わないといけないのですが、こちらではやり方が違うのでしょうか? timeline使ったことなかったけど、Unity 2019.4.1f1 で普通にできるな
おま環じゃね? >>819
手順は>>808で合っているという事でしょうか? gifと>810のサイトで両方やって普通に両方できる >>821
ありがとうございます。
新規プロジェクト作ってもう一度やってみます 信じられない…再起動したらレコードボタンが普通に動きました…
unityはこういう事有るんでしょうか?昼から一日中何をやっていたんだろう…
お時間割いて頂いて有難うございました ボタン押せないバグはよく起きるよ
ディレクショナルライトが落っこちてどっか行ったり
視点がメチャクチャになって返って来たり unity自体のバグはまだまだ割とあるので困ったら再起動してみよう >よく起きるよ
(´-`).。oO(そうなんだ)
>ライトが落っこちてどっか行ったり
!?Σ(・∀・;)
>視点がメチャクチャ
工エエェェ(´д`)ェェエエ工 >>827
仕事でやるならまずこの仕事は出来ます出来ません、出来るなら何時迄に出来ます出来ません
或いはやりますやりませんを答えなきゃいけない
それも人に聞くの? 自分の意思と判断がないやつに出来るの? みんなそんなことになってたらもっと大騒ぎになってる
常識で考えよう URPでのカスタムポストプロセスを作ろうと思って調べ初めたんですが、
URPはカスタムポストプロセスが使えないというフォーラムを見つけました。
これは本当でしょうか???
表現をPPに頼ってるゲームも多いですし、使えないと相当困ると思うんですが… >>830
どちらかというとボタン押せなくなるUnityの方が非常識だけどな。こんなバグ他のツールで見た事無いわ てか経験者が隣に居るならまだしも、本やサイトに、Unityはすぐバグるので変だと思ったら再起動とか書いてないだろ。大体どうやって初心者が挙動が変かどうか判断するんだよ…初心者スレでイキるのダサいし不毛だから止めてくれ >>831
募集によって求められる人材は違うからピンキリだろ
書いてあるんだから片っ端から募集見ればいいじゃん
基本エンジニア(技術者)の募集だから単独で仕様に沿って設計/実装できたり
業務をまかせても一人でこなせることが求められるだろうね
会社は出来なきゃ外注に出すから、それをそっくりそのまま雇い入れた人間に
やらせたいから雇う それとも金をドブに捨てるために雇うの? すぐバグるのはキミの環境がおかしいからだよ
イキってるんじゃなくて客観的事実を述べているまで
みんなそんなことになってたらもっと大騒ぎになってる
常識で考えよう Unityが一番バグ多いと思うけど
動画編集も結構大手のDavinciとか少し前まで書き出しでフリーズするバグあったし
そんな言う程じゃないと思う
本やサイトに書いてなくてもUnity道場でもよくフリーズしてるよ おかしいと思ったらとりあえず再起動してみる
って別にunityに限った話じゃない
1から手順を再確認するというのはミスを発見する上でも大事 最近のUnityは手順が厳格化してる割に分かりにくいのはあるかな
以前はインスペクタから右クリで何でも出せたけど今はAnimationContrlerがなければ
Clipは作れないみたいに条件が限定的になってる
あーだこーだ文句垂れる奴が多すぎたから一掃する気なのかもね(ニッコリ メモリ32GBのときは半日くらい作業してるとクラッシュしてたけど64GBにしたら全くなくなった
フォトショとか同時に起動してる人は大容量メモリが正義 スクエニの記事でもUE4のバグ報告大量とか
バンナムの自社エンジン作ってた人もバグ報告で大変だったとか
ゲームエンジンでバグは当たり前なのかも知れない >>836
みたいな有益な情報も出さずに匿名でイキるだけのゴミが多いし、初心者さんはTwitter、Discord、公式フォーラムみたいな、まともな人間と話せる環境で聞いたほうが良いよ ☆★橋聖子出没注意★☆
このスレには橋聖子とそのお仲間が出没します。
おかしいなと思ったらスルーを心がけましょう。 あなたが出来なくても代わりはいくらでもいるんじゃないですか?
あなたの邪な野望が叶わなくても誰も困らないんじゃないですか? Main Camera にタイムラインでズームするアニメーションを設定したら
UIのキャンバスに配置した画像まで一緒に大きくなってしまったのですが、
どうすればMain Camera のズームとは切り分けて、キャンバスに配置したものはそのままの大きさにできるでしょうか? ならんけど?
むしろ何をどうしたらそんな面白いバグを引き起こせるのか知りたい キャンバスの設定をいろいろ試してたらなぜか治りました。
Screen Space - Overlay から Screen Space - camera に変えてみたり
キャンバスに入れたsprite画像を一回削除して付け直したりしてたら、治りました。
どうしておかしかったのか分からなかったです。 WorldSpaceにしたら拡大されて見切れたわ
思い付きでマニュアルの説明も読まずに適当なことして、何をしたか分からなくなったら助けろって
流石にやってる事がおかしいんじゃないの? 原因を引き起こしてるのは貴方だよね
可笑しいのは貴方じゃないの? 何だそりゃ(笑) 何かレッテル貼れば事実が覆るとでも?
池袋の暴走車と同じでアクセルとブレーキの踏み間違いのような完全に人為的な事故だろ
何も変わらないじゃない(笑 盛り上がってるね
質問なんだけど
ブロック崩しを作ってみたんだが
角度が浅いと壁と平行に進むようになってしまう
http://kmajo.starfree.jp/grain-portal/20200621-002.png
玉の当たり判定で
Circle Collider 2Dをやめて
Box Collider 2Dにしたら改善されたが
多少なってしまうのは避けられない
そういうものだとあきらめるのがいいのかなあ 初歩的な質問で申し訳ありません
アセットストアで購入したアセットのアーカイブをローカルに保存するにはどうすれば良いでしょうか?
適当なプロジェクトフォルダにインポートしてフォルダ内のファイルをバックアップするしかないのでしょうか?
アセットストアのページにダウンロードボタンが見つからず困惑しております
どなたかご教示いただけると幸いです >>852
Custam Package化するとか? 最近は何でもバグだのソフトが悪いだの言い出す奴増えたな
販売してるソフトのサポートメールでもひどい奴一定数いるわ ☆★橋聖子出没中★☆
現在スレに橋聖子が出没しています。
橋聖子には大勢の荒らし仲間が存在し互いに殴り合いながらスレを渡り歩いています。
おかしいなと思ったらスルーを心がけましょう。 どう見てもTwitterやDiscordやフォーラムからハブられてきたガイジと糖質の集団だろ
頭悪すぎてチュートリアルすら出来ないとか笑ってしまうわ >>851
対策方法の案としては
反発処理は衝突をトリガーにして自分で向きを変えるとか
摩擦係数を変えるとか かな >>855
そんなん昔からでしょ。
デバッガーですら、報告書に「敵がバグった」「画面がバクった」と書く人、一定数いたしw ここで聞いたシンプルな質問、discoで聞いたら一発だった上に、
ミスというよりはunityの仕様バグに近い内容でスッキリしたわ
ここにunity使えるやつは1人も居ないとハッキリした >>861
へー じゃあここにissue trackerってUnityのバグを掲載してるところがあるんだけど
どこに載ってるのか教えてクレメンス
https://issuetracker.unity3d.com/
さっくり調べた限り記録がないようだけど? ま、Discordに入り浸ってればいいんじゃないかな
二度と戻ってこなくてよかったのにどうして来ちゃったの? そらこのスレを荒らすのが目的だからに決まってんじゃん >>861
ちなみにどの質問?
解決したなら共有しといてほしい。
煽りじゃなくてマジに IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip ゲームが出来上がってから、ビルドする際に、
体験版などの別バージョンを作りたい場合には、
UnityのAssetsフォルダとかが全部入っているフォルダをそのままコピーして、フォルダ名を変えて
そしてコピーしたフォルダをUnityで開いてシーンなどを消したり、編集したりして、体験版の別データを作る手順で問題ないでしょうか? >>868
体験版用に別のシーンを作って、
体験版ビルドするときだけ、体験版用シーンから起動するように作ることもできますよ
別フォルダーに分けると、デバッグしたり、機能追加してアップデートした時に
体験版のほうが古いままになってしまいます んあーちょうどホロレンズのサンプルとか見ててえ、これシーン全部追加したい時って一個一個開いて追加するの?とかシーンの取り扱い分からなかったわ。
なんかシーン管理のアセットとかあるのかの どこのシーンから起動させるかをビルド時に決めることができるわけですか。
たとえばステージ1だけを遊べる体験版をファイル複製の方法で作りたい時に、
一時的にフォルダの内容が全く同じものが2つ出来ると思いますが、
Unity上で開いた時に何か不具合が出ることは無いでしょうか? >>872
完全版のプロジェクトを複製→無駄なファイル消して体験版のシーン作成
ってのなら別に動作に不具合はない
でも>>870が言ってるように完全版に更新入ると体験版の方は更新されないし無駄に容量増えるだけ
って訳で体験版用に複製するのは無駄
完全版に体験版のシーンを作ってビルドした方がいい auto refreshはhdd性能の問題で、cpuはあまり関係ないですか? >>874
レベルデザイン君Discordで指名手配されててワロタ
嫌われすぎだろ テキストや画像などのUIが色々入ったゲームオブジェクトの透明度をいっぺんに操作する方法ってありませんか? >>877
親にCanvasGroupってコンポーネントをアタッチして、そいつのアルファを操作する。 >>873
完全版に体験版のシーンを作るようにしたいと思います。
シーンを複製して体験版用に作り直したら、
Build Settings のScenes In Build の一番上に体験版用の初期シーンを持ってきて
不要なシーンは左側のチェックを外してビルドすればいいのでしょうか。
体験版以外の不要なファイルが入って容量が大きくなったりしないでしょうか? >>880
体験版のシーン作ったらそれだけ選択してビルドすれば大丈夫
完全版は体験版のシーン以外を選択すればいいよ
あと容量は選択したシーンのアセットしか含まれないから肥大化はしない >>881
なるほど。不安が消えました。有難うございます。 Unity今日初めた
ユニティちゃんの入門講座に沿ってダウンロードと簡単な操作法まで行ったんだが
更新があったのかチュートリアルが動画にあるやつと違う&見当たらなくて早くも詰まった
とりあえず自分でチュートリアル漁ってみようかと思ったんだが、全部英語の奴っぽくて付いてけない
皆ここどうやって突破したんだ?
もしくはユニティちゃん講座以外にいいステップの踏み方あったら教えてくれ ネットで調べたらバージョン違いで動かないとか頻繁にあって数少ない毛根がストレスで死滅したけど皆も通った道なの?
steamVRPluginのバージョン1.0と2.0にはほんと泣かされた、全然別もので調べたら1.0の記事ばかり。 全然別物だからメジャーバージョン番号が変わってるわけで… >>886
これから先もUnityはバージョンUPしていくんだろうけど
古い記事はネットに残り続けるよね。
将来的に初心者が調べ物した時に困る事態にならないんだろうか。というのもsteamVRPluginでも記事にVer表記が無いのが多かったんだよね、初心者がコード見てVer判別できる訳もなく、VRPlugin以外でも同様のことが起こりそう。 >>885
リアルタイムで乗ってないとバージョン変更でつらいね。
まったくの初心者なら、取り敢えず、最新の本(刷新2020.1の前後推奨)をお勧めする。それで基本をつければあとは応用が効くよ。
例えるなら、現在のunityが高速道路の本線で、いきなり本線に乗れるわけもないから、本片手に徐々に本線に乗れるようにするわけ。 助けて下さい。
PlayOneShotでSEを鳴らしているのですが、短いwavデータ(クリックのカチッとか)だと何故か音量がばらつきます。
具体的には2Dのメニュー画面のボタンを押すと鳴るように設定しているのですが最初の1〜2回のクリックの時は非常に小さい音でその後大きい音量で安定します。
小さい大きいを数度繰り返す事もあります。
何をトリガーにして鳴らすかも複数方法試し、最終的にはSEを鳴らすだけのクラスを直接ボタンにつけました。
同じ方法で、ためしに長めのSE(魔法のシュイーンとか)を鳴らすと同様の問題は起きませんでした。
ロード待ちかと思い最初に1分くらい待っても変わりませんでした。
Androidで実機ビルドしても再現されています。
同じような経験をされた方いらっしゃいませんか?
2019.3.2f1のバージョンを使用しています。
よろしくお願いします。 音が重なってるだけじゃないの?
コンソール機でもバグや処理落ちが起きて固まった後に動き出す時
「ドゴン」とかとんでもない爆音が出るけど
同時発音数いっぱいの64とか128まで処理落ちで再生が溜まったSEが
動き出したとき同時再生されると爆音になる >>890
オンクリックの時にPlayOneShotを呼び出しているだけなのですがその可能性もあるのでしょうか?
一度目の再生だけかすかに聞こえる程度で、もう一度ボタンをクリックするとカチッ!とちゃんと鳴るようになります。
アセットストアの音集に入っていたUI click系のサウンドです。
複数種類のクリップを試しましたが、どうやら再生時間が非常に短いもののみで起きます。
オーディオクリップの設定も内容はよく分かりませんが、全部チェックをいれたりロードの仕方を変えてみたりしました。
新規のプロジェクトで再現されるか試してみます。 新規プロジェクトで再現されませんでした。。どうしよう。。
おま環かもしれませんが、思い当たる設定などありましたら些細な事でも教えて頂ければ助かります。。
解決したら報告します。 ビルド後のテストプレイじゃなくてUnity上で開発中のプロジェクト動かしてる時に起きることか?
しょっちゅう起きてるけどマシンパワーとタイミングの問題だと思って気にもしてなかったわ ミキサー使ってSEはSEのチャンネルに突っ込んで
チャンネルごとにコンプレッサーかけとけば音圧が大きく変わる事はないだろうけど
原因が分からないのはスッキリしないね >>892
play関数の前にvolumeに1入れてますか? >>893
どちらの状況でも再現します。
>>896
いれてないです!
原因がほぼ特定できました。
そのボタンのイベントトリガーにはオブジェクトをSetActive(true)するスクリプトもアタッチしているのですが、オンにするオブジェクトにCanvasグループがついていると100%再現します。
その中にスクロールビューもあるのですが、そのオブジェクトをオフにすると再現度がまちまちになります。
このオブジェクトの描画処理のせいで処理落ちしてるのでしょうか?
内容はイメージ数点とスクロールビューにボタンを並べた一般的なステージ選択ウィンドウです。
でも処理落ちだったら最初の一回だけ不具合が起きてその後正常になるというのもよくわかりません。
ちなみに同じオブジェクトを新規プロジェクトの方でもSetActiveしたら同じ症状が再現できました。
Unityのバグだったらお手上げです。。 最初からオブジェクトを表示しておきStartにてSetAcive(false)で消す事により解決しました。
もっとスマートな方法を見つけたいですが音は出たのでとりあえず良しとします。 boolの〜について
if(!〜)
は
if(〜=false)
と全く同じ意味なのか
それとも
「それまでの逆」という意味
どっちなんでしょうか if !(True){Debug.Log("False")} True反転したら動かねえわ
if !(False){Debug.Log("True")}
こっち >>900
頭に!をつけた場合、
評価の結果を逆にする
という効果になります。
if(!aaa)
としたなら、このif文の中が実行されるのは
aaaがfalseだったときになります。 ~が式だった場合は
!(式)という風にかっこでくくると
式の結果を反転する、という意味になります。
if(!(1+1==2))
だと、falseが返ります。 >>891
音のノーマライズのフィルター効果が原因では?
音量を平均化する機能が効いてるとそんな感じになる
初回で調整してるから音量が安定せず小さくなる、2回目以降とかは調整済みなので普通に音が出る状態
音が長い効果音やBGMだと症状が出にくいから気付きにくい
短いSEだともろに影響出る >>899です、やっぱりダメでした。
https://dotup.org/uploda/dotup.org2187055.zip.html
パスワードunity
unityパッケージが中に入ってます。
不具合が再現できる最小構成です。
再生して真ん中のボタンを押すとウィンドウのオープンと共にSEが鳴ります。(小さい音)
そのまま、もう一度同じボタンを押すと普通の音量のSEが流れます。
たまに一度目も成功しますが9割この現象が起きます。
面倒だと思いますが検証していただける方が居ればお助けください。。
特に不具合がなければUnityのバージョンなども教えて頂ければ助かります。
よろしくお願い致します。。 >>906
ダウンロードして試してみたところ、こちらでも再現しました。
原因はわからなくて申し訳ないんですが、とりあえずの方法として
PlayOneShotの部分を
audioSource.clip = seList[index];
audioSource.Play();
に置き換えると音量は下がりませんでした。 >>905
もし宜しければ設定項目や確認できる場所を教えて頂けませんか?
ググっても見つからなかったもので・・・。
>>907
わざわざありがとうございます・・・!
素人なので自分が間違っているのかUnityのバグ(仕様)なのかイマイチわからないんですよね。
回避策まで教えて頂けるなんて感謝しきれません。
ボタンにSEつけてUGUIを表示するなんてゲームの基本中の基本だと思いますが、皆さんこの現象に遭遇しないんですかね? みなさんありがとうございます
なんとなくわかりました Cinema4DというCGソフトの.c4dファイルが
UnityAssetsのCinewareを使う事によってUnityに読み込めるようになったのことで
https://cginterest.com/2020/03/11/cinema-4d%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8Cunity%E3%81%AB%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E5%8F%AF%E8%83%BD%E3%81%AB%EF%BC%81cineware-by-maxon%E3%83%97%E3%83%A9%E3%82%B0/
AssetsStoreからCinewareをダウンロード、インポートまでしました。
Cineware用に保存した.c4dファイルをUnityのProjectウィンドウにドラッグアンドドロップまではできたのですが、
そのモデルをHierarchyウィンドウに入れる事ができません。
UnityのCinewareを使っている方いらしたら、どうすればC4DのファイルがUnityで読み込めるか教えて頂けないでしょうか >>908
ミキサーに突っ込んでレベルを表示した状態でピークを比べてみても物理的に変化がないね
PlayOnAwakeのチェックが入っていると起動時なにもしてないのにピークホールドが
真ん中あたりから出てスーッと下がっていくのはちょっと気になる >>910
Cinema 4Dに入ってたCandle.c4dというファイルで試してみたけどドラッグアンドドロップでシーンに追加できたよ
どのモデルでもできないの? if(score > 100){ A }
if(score > 200){ B }
と書いた場合
score>200のときは
AとB両方が実行されてしまいますよね
特定のscoreを初めて越えたときだけ
発動させるにはどうすればよいのでしょうか
よろしくお願いします。 if(score > 200){
B
}else if(score > 100){
A
} windows向けにビルドしてゲームを実行したら
ゲーム内のキャンバスがウィンドウの大きさに合わせて伸び縮みしないことが分かりました。
ウィンドウを縮めるとキャンバスは見切れて見えなくなりウィンドウを大きくすると相対的に内側に小さく表示されます。
canvasをウィンドウサイズに合わせて伸び縮みできるようにするにはどうすればいいでしょうか?
キャンバスの設定はScreen Space - Camera にして Main Camera を設定しています。 >>908
自分は同じ症状になった時はミキサー内のノーマライズ設定が原因だった
この症状はミキサーの音量を見ていても出ないから特定するのに苦労した思い出があるけど
ノーマライズフィルターが有効になってないか確認したら?
全く別の原因があるかもだけど
ノーマライズから出るこの状態はUnityのバグ的な仕様に思える >>916
unity ui アンカー とか キャンバススケーラー とかでググれ >>911
そのお話を聞くとやはりバグっぽいですね。。
自分でも確認してみます、ありがとうございます!
>>917
ミキサーを使った事が無いのですが起こりうるのでしょうか?
これも確認してみます、助言ありがとうございます! >>913
初めて超えたフラグを用意して、既出の例の中でそれの値を見るようにする。成立したらフラグを変化させるの忘れないように。 >>914
ありがとうございます
>>915
初めての部分はどうすればよいのでしょうか >>918
おかげさまで何とか打開できました。
windowsのアプリケーションにするとウィンドウを縦方向に縮ませたときは
画面が一定の比を保って収縮しますが、
横方向に縮ませたときは収縮せずに見切れていく仕様みたいなので、
Canvas Scaler の Screen Match Mode を Match Width Or Height にして
Match のバーを1(Height)にすることで解決できました。
横方向にウィンドウを縮ませたときは収縮せずに見切れていくのはUnityの仕様なのでしょうか?
とにかくこの方法で解決できました。 >>923
アンカーを適切に設定すればだいぶ見切れにくくなるんじゃないかな
既にやっててなお見切れるってなら、UI見直すか諦めるか別の方法考えるか…ってとこだが >>923
すまんけど解決策ではない
俺もそれ気になってた
webGLの最大化とかすると縦方向でリサイズされるから
PCなど横長だと見えない予定のところまで見えてしまう
スマホなど縦長だと横が途中しか表示されずはみ出る
ぐぐったらスクリプト書いて調節してるのあった
今寝てるので具体的には示せない
俺は初心者なので便乗して教えてもらいたいくらい >>923
見当違いかも知れんが、game viewの比率設定は何にしてる?
好きなサイズを登録してそれにしてみては?
free aspectだと変わってしまうのでは?と思ったので。 >>923
http://www.metalbrage.com/UnityTutorials/uGUI/Scaler.html
によると
Match Width or Heightは縦または横あるいは中間に合わせるみたいだね
Expandにすれば縦横が納まるようにするみたいだね >>914
試してみた
変数名はこちらの都合で変えている
//nextPoint初期値 100
//point スコア 初期値0
//Update()などで下記
if (nextPoint > 0 && point > nextPoint)
{
if (nextPoint == 5000)
{
Debug.Log($"スコアが{nextPoint}を超えた");
nextPoint = 0;
}
--行数多すぎで書き込めないのを回避するため省略--
if (nextPoint == 200)
{
Debug.Log($"スコアが{nextPoint}を超えた");
nextPoint = 500;
}
if (nextPoint == 100)
{
Debug.Log($"スコアが{nextPoint}を超えた");
nextPoint = 200;
}
}
大きい順に書いた
小さい順に書く場合は同時に実行されないようにifの条件を複雑にしないといけなくなるね
どれも同じ処理をする場合は配列にした方がいいのかな
俺は初心者なのでもっといい方法があるのかもしれない game viewの比率は1024*768で作っています。アンカー設定は中央にしているので問題ないと思います。
画面に配置するもの全てをキャンバスの中に入れてから、キャンバスの設定をExpand にすればよかったみたいです。
Expandにすれば、キャンバスに含まれているものは縦横方向に収縮してくれますが、
ヒエラルキーにそのまま配置してあるスプライト画像などは、見切れていきます。
このことを知っていれば全てのオブジェをキャンバスに含めるように作っていたと思います。
ご指摘の通り、横長画面だと横側の見えない予定の所まで見えてしまいます。
でも今回作っているゲームは横側に余計なものを配置しない作りのゲームですので、もうお構いなしでこのまま作ってしまいます。
最悪 全画面表示不可の設定にしてビルドしてしまうと思います。 ゲームビューでスプライトにアニメーションをつけて再生していたのですが、アニメーションを動かすとゲームビューの画面がとても遠くなり動きが分からない状態になってしまいます。何が原因でしょうか? ビルドしてスマホで見ると
Unityで再生するときよりも
全体的に暗くなってしまうのですが
原因は何がかんがえられるのでしょうか PCとスマホでガンマが違えば濃くなったり薄くなったりするんじゃ IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip >>912
ありがとうございます
.c4d拡張子のファイルをC4D上でcinewareで保存し、
それをUnityのProjectウィンドウにD&Dまではできたのですが、
Sceneの方にはやはり乗せられませんでした(禁止?マークが表示されます)
cineware保存ではなく通常保存の.c4dファイルでも同じでした
試しに同じデータを.objで保存したのですが、
.objですと問題なくSceneにD&Dでき、オブジェクトもちゃんと表示されるのですが・・・
Windows10の、UnityはVersion 2019.4.1f1 Personal
うーん 何かの操作をミスしてると思うのですがわからない Unityは3Dソフトのバイナリが読める訳じゃなくて
バックグラウンドで3Dソフトを動かしてfbxを出力させてるだけだから
マニュアルでfbx出力しても大して変わらないよ 皆さんありがとうございます
明るさはの問題はまだ解決しないのですが、
ほかにビルドしたときの問題で
ボタンでGameObjectのSetActiveのtrueとfalseの切り替えをしてて
Unityの再生だときちんと表示非表示ができるのに
スマホにビルドするとボタンをタップしても反応がありません
ビルド全般がおかしいとかあるんですかね >>939
Auto Generate Lighting がオンになってたシーンがあって
すごく重かったのでオフにして、
手動で Generate Lighting をしたりしてから
変わったような気もするのですが、
だったらエディタでの再生のときから変わるはずなのかなと >>940
あ!ライトの数、多くない?
iPhoneはsettingで数値あるし、上限もあるはず。
それかもよ。 ある日急に無料版なのにスプラッシュスクリーンが出なくなったのですが思い当たる理由ってありますか?
Androidでアプリを起動すると灰色の画面は表示されますが、Unityのロゴは出ないでそのままスタートシーンになります。
ロゴが出てた時より灰色の時間も短いような変わらないような。 >>942
自己解決?です(まだ試してない)
最初に読み込むシーンが重いとなる事があるらしいです。
スプラッシュスクリーンが出なくても困りはしないのでゲーム完成までとりあえず放置します。 boolの宣言の仕方についてなのですが
start()などの外で初めにかくときに
bool flag;
のようなものと
bool flag = false;
のようにfalseを入れるのとがありますが
どういう違いがあるのでしょうか 未アサインで使おうとするとコンパイルエラーになるが? >>946>>947
ありがとうございます
boolって難しいですよね Addressableアセットシステムでシーンのロードをしたいのですがうまくいきません
Addressable Settingにシーンを登録してラベルをつけても
シーンの中で使う画像、プレファブとかスクリプトには
Addressableのチェックはつきませんよね
これら画像なども個別にSettingに登録する必要があるのでしょうか
特にプレファブはチェックが見当たらないのですが
どうしたらいいのでしょうか
よろしくお願いします。 Unityで使える3Dに当て込む用のマテリアルを作成できるのに一番使われているソフトは何になりますか?
Substance Painterが気になっているのですが、こちらは丸ごとテクスチャをUnityでも使えるのでしょうか クソゲーでもいいから作るのが大事すか(´・ω・`)? はい→嘘だ騙されないぞ
いいえ→何もしない
はいでもいいえでも結果は同じ
それって一体何を知りたいの? 日本語の意味? こんにちは。質問失礼します。
Unity と SteamVR,HTC Vive を使って、VR内でハンドルを回すと物体が移動するようなスクリプトを作ろうとしています。
このスクリプトは、物体 Box にアタッチして使おうとしています。以下、スクリプトの概要を書きます。
最初に、Box の初期位置を Start 内でPos = this.transform.localPosition;
によって取得します。次に、 Update 内でハンドルのx軸周りの角度を
Angle = Handle.transform.localEulerAngles.x;
によって取得し、その角度に応じて Box がz軸方向に動くように
this.transform.localPosition = new vector3(Pos.x, Pos.y, Pos.z + Angle);
としています。(変数の宣言などは省略しています)
このスクリプトによって、ハンドルを回していくと Box がz軸方向に動いていき、ハンドルが1周したところで Angle の値が0になり Box が元の位置に戻る、という挙動を予想していたのですが、どうにも違うのです。
実際のハンドルの角度(VR映像で提示されているもの)と Angle が取得している角度が以下のような関係になっているようです。(Debug.Log で確認しました)
ハンドル:0 ~ 90 ~ 180 ~ 270 ~ 360 (0)
Angle :0 ~ 90 ~ 0 ~ -90 ~ 0
なぜこうなっているのか原因が分からず困っています。
どなたか心当たりのある方はいらっしゃいませんか。 >>955
アングルは角度表示は、取得するたびに変わる可能性があります。
それは、インスペクタの表示はあくまで便宜上の3軸角度で、ほんとうはクォータにオンという型で管理されています。
なので、角度の極値の範囲内ならある程度想定通り動きますが、極値を超えるとあらぬ動きをすることが少なくありません。
クォータニオンを勉強するか、騙し騙しですがアングル角を持っておく方法で対応します。 要するにlocalEulerAnglesのYとZも変わってるのさ >>955
ハンドルの値は取得できるで良い?
angleの所を1-cos(ハンドル)でどう?
ハンドル:1-cos(ハンドル)
000:0
090:1
180:2
270:1
360:0 ああああ
誰かAddressableAssetSystem日本語でわかりやすく解説してくれえええ >>958
>ハンドルの値は取得できるで良い?
それができないって話だろw読解力よ Unity Recorder を使いゲームプレイを録画中にパソコンから音が出なくなるのですが、
パソコンから音を出しながら録画をしたいのですが、どうすればいいでしょうか? 前まで直接スクリプト開けば自動補完使えたのですが今はOpen C# Scriptから開かないと使えません
仕様が変わったのでしょうか? スプリクトを勉強したいのですが、unity5とかの本でも現在の環境に対応できますか?
使っているバージョンは2018.4.24です。
また、初心者にお勧めのスプリクト関連の本はどのような物がありますか? 参考になる部分もあるかもしれんがバージョン違いで発生する問題に自分で対処できないと思うならやめたほうが良い
変化が速いから本よりググったほうが良いと思うけど取っ掛かりとしてどうしても本が良いって人も多いからお好きな方で 勉強中なら素直にそのバージョンの本を買った方がいいと思う
中古でかなり安く手に入るとかなら買ってもいいかな
おすすめの本は965がどのぐらいのレベルかわからないんでなんとも
今まで何の本を買ったとかどこで詰まったとか言われれば勧めやすい ガチ初心者なら猫本一冊で十分だろうし
スクリプトの本と言っても、標準の関数全部覚えたところで何になるわけでもないし… 猫本の次って何がいいですかね?
3Dを学びたいんだがUnity本格入門買ったら難しすぎた >>972
本格入門ってどんなやつ?
表示アップ希望 昔そんなことで悩んだなあ
初心者から最先端大人気アプリまで段階的にレベルアップする本なんてないなあ
ゲームでなくエクセルとかの初心者本なんてコンビニにたくさんあるけど
俺みたいな素人にエクセルとかマインクラフトみたいなものを手取り足取り教えてくれる本はないよなあ
上記はたとえばなしだよ
俺みたいな初心者がunityでノットテトリスみたいなゲーム作るにはアセット買うしかないのかなあ >>976
何が言いたいのかわからない例えだけど、初心者でもやる気があれば何でも作れる。
本当にノットテトリスが作りたいなら未経験から2〜3ヶ月もあれば作れる。
やる気が無いか、ノットテトリスレベルのオリジナルゲームが作りたいってだけで具体的なアイデアが無いんだろう。 どちらかと言えば、ゲームの作り方の流れをunityに限らず解説した本の方が参考になるかもね >>976
近道はないよw
習うより慣れろ、Dr.パソコン宮永先生が言ってたw
自力開発の力つけたいなら、家庭教師が一番近道だろうね。疑問にすぐ答えてくれる。ただしいっぺんに覚えられればの話だから。 えー
俺の持ってる本には画像を斜めに切って複数のオブジェクトに分割したり
特定の範囲内に重なる面積の求め方とか載ってないぞ 今はマイクラで遊んでるから
しばらくはunityを遊ばないけど
気になることがある
2Dにて
画像の黒から青と青から白のグラデーションを別の色のグラデーションに動的に変えることで
用意する画像は一つだけで任意の色違いの画像を表示する事ってできるの?どうやるの? >>979
昔は家庭教師より塾の方がわざわざ出向いて貰わなくてもいいからメリット薄いと思ってたけど、Unity家庭教師が
もし居たら3日くらい雇いたい。
分からないこと聞いたらすぐ教えてくれるとか夢の環境だな。
要は本人のやる気次第で家庭教師は有用ってこの歳で気が付いたよ。 YouTubeにプログラミングの動画が少ないけど存在するが見るの苦痛だ
分かりにくいという以前につまんない
おっぱい料理とかおっぱいピアノとかゲーム実況などを見てしまう
どうしてお前らはいろんなこと知っているんだ >>983
プログラム、今は向いてないんだと思うよ。
プログラムの勉強が楽しいと思う精神にならないと苦痛でしかない。それは他のことでも一緒。
変えるか変わるまで待つしかないね。
多くの人は嫌なことでも仕事なら無理にでもやるでしょ。 >>982
そう思う。
だからココナラで探してるところ。パート毎に悩むところを切り売りしてもらおうかなぁと。 大好きなゲームは何時間でも続けられるのに大嫌いなゲームは5分でやめてしまう
生理的に嫌悪してて本能が拒絶反応起こしてるだけだから向き不向きで言うなら絶望的に不向き >>986
つ すたじおしまづ でもやったらいいよ >>988
ありがとう、未発表者じゃない者が入れてもらえるか聞いてみるよ。 プログラムの動画解説は正直だるい。
たまに操作方法わかってて役立つ時もあるけどサイトとかの方がいいなぁ 判るわ何か説明が遅過ぎて文章を読んだ方が圧倒的に早くて理解も出来る
最近ではグダグダ説明してないでさっさとコード見せろとすら思うようになった >>990
俺だけかと思ってたけど安心したわ
操作と解説との同期が取れないというか
一番困るのはGIF動画を載せてるヤツでただストレスだけがたまる コード見ればどう動くかどういった意図で書かれているか何てすぐに判るだろ
コピペしたいならそれを理解した上でコピペして動かせば良い
仕事でもリードエンジニアのコード見て同じように設計壊さずに書いてんだから全員そうやってるだろ 本が理解出来ないのは、まず知りたいのがやり方じゃなくて仕様だからだと思う
まず仕組みを知って理解し楽しみたいのよ >>998
本はお前が選んでお前が買ったんだろw
理解できないのは誰のせいさよ、馬鹿なのか? このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 105日 23時間 56分 8秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。