【ゲームエンジン】Unity初心者質問スレBuild2
■ このスレッドは過去ログ倉庫に格納されています
ランダムに数字を生成して出た数字で行いたい処理を決めたいのですが if (Random.Range(1, 3) == 1) { 「行いたい処理その1」 } else { 「行いたい処理その2」 } とやって、1〜2の数字をランダムに生成して 1が出たら「行いたい処理その1」それ以外は「行いたい処理その2」と出来たのですが 生成する数字を1〜5にして 1が出たら「行いたい処理その1」 3が出たら「行いたい処理その3」 4が出たら「行いたい処理その4」 という風にしたい場合はどのように記述すればいいのでしょうか。 >>514 分岐が3つくらいまでなら乱数を変数に保存してifでもいいかもね switch 文でやってみたら出来ました! ありがとうございます! ついでにint管理じゃなくてenum定義すると便利よ 1がどの処理で2がどの処理でって覚えなくて済む >>504 まだ実際に作ってないわ、頭の中でどっちがメモリとか追加機能で便利か考えてる中質問した >>519 じゃ作ってみてそれから考えるといい メモリ管理とかそういうのは初心者が考えなくていいよ 5つのアニメーションクリップを作り、 初期状態のアニメーションクリップからランダムで4つ何れかのアニメーションクリップに遷移させたい場合、どうすれば実現できるでしょうか。 初期状態のアニメーションクリップの最後のフレームにAdd eventの+を設置してスクリプトで指示を出すのだと思うのですが、そのようなことができるでしょうか。 わかる方いたらヒントをください。よろしくお願いします。 https://youtu.be/2mymw7lxSvg https://dotup.org/uploda/dotup.org2000038.rar >>521 anystate からそれぞれ遷移の線を引く パラメーターintを作る スクリプトでランダムに数値を取得 それを当てはめる 線を引いたらそれをクリックしてプラスキーでパラメーター指定できるから そこで数値指定するのよ AnimatorのParametersからIntを設定するやり方はわかったのですが State同士をつなぐ線の数だけIntを作るのでしょうか。 Intの右側にある数字を入力する窓枠も何を意味するのかよくわかりませんでした。 今の段階ではスクリプトも書けそうもないのでもう少し勉強してから改めて質問します。 int はひとつ、それをスクリプトで数値を変えられる setinteger だったかな ググると色々出てくるとおもうよ 左の枠のとこはエディタでテストするときに自分で入力して遷移を確認できる >>526-527 詳しい情報を載せてくれてどうもありがとうございます。 今日は完全にあきらめてUnityの初心者用の書籍(猫の表紙の本)を買ってきてC#の基礎を勉強していました。 基本的なことが分かっていないのでソースを見ても理解ができていない状態です。 ブログの記事のソースが読めるようになれば実現できると思います。 自分一人ではこのブログにたどり着けなかったと思うので助かりました。 >>528 アセットを買えばC#の本も要りませんよ すまない、本当に分からない 下の例文を正しく書きなおしてみてくれないか それで分かる 助けてくれ これと public class Option : MonoBehaviour { static private System.Action OptionCallback = null; } これと public partial class Home : MonoBehaviour { private enum Menu { Title = 0, StageSelect, Stage1, Stage2, Stage3 } } public partial class Home : MonoBehaviour { private enum Menu { Title = "TITLE", StageSelect = "STAGE_SELECT", Stage1 = "STAGE_1", Stage2 = "STAGE_2", Stage3 = "STAGE_3" } } これを頼む public static class GlobalValue { public class Scene { public const string Home = "Home"; public const string Stage1 = "Stage1"; public const string Stage2 = "Stage2"; public const string Stage3 = "Stage3"; } } unityからC#スクリプト作成しようとして、 visual studio立ち上げるとインテリセンス全然働かないんだけどなんで? transform.Translate() とか使おうとするとエラーでる・・・。 >>535 参照が外れてる 直すの面倒だからサイインスコ推進 下の例文を正しく書きなおしてみてくれないか > それで分かる > 助けてくれ それでどうにか私でも解ると思います どうかお助け下さい 宜しくお願いします >>536 ありがとうございます。 でも、なんかしょっちゅうこういうことが起きてるんですけど、 Unityってこんなに安定していないものなんでしょうか? >>541 そんな言葉使いは良くないな そもそもプログラムを例文とは書いてないしな、文としては日本語の部分かと思ったから直したんだよ 人に聞くような文にな でだ そのプログラムを直すなら >506にも書いてある通りどうでもいい 誰かと協業してるならそこのルールに従いなさい 一人で作ってるなら解れば問題ない どこかのテスト問題ならそこの先生に聞け >>538 オブジェクトをインスペクターで貼り付けてあると、スクリプトの修正の仕方で、リンクエラーが出る時がある、それが、リンクリスト?に影響を与えて参照がおかしくなる。 問題のスクリプトを修正すると、全体に起きていたリンクエラーも直る floatとかdoubleはインテリセンスで表示されるんだけど、 Input.GetMouseButtonDown(0) とかはインテリセンスで表示されないものなのでしょうか? 入力ミスのバグが多くなりそうでしんどい。 >>544 ??? エラーが出てるときにVisual Studioでスクリプトをどこか修正して保存したら直るっていうことですか? エラーというか、赤線が大量に出てない? そうじゃなきゃ、すまん、思い違いです。 >>545 floatとかdoubleはc#の基本機能なので出る Input.GetMouseButtonDown こっちはUnityの機能なので出ない という事で参照が外れてる 一応、ググル(unity c# インテリセンス)と修正方法書いてるとこあるけど https://qiita.com/AM23Ti/items/b03d7d58ca92890c8d00 とか https://qiita.com/junkeymonkeybaby/items/5ff56e34cd3e2260c80d とか でもこれってそのプロジェクトだけで他のプロジェクトをやるとまたでない事があって 自分がなった時は結局サイインスコが一番だと思った >>548 ありがとうございます。 でも、再インストールしてもやはりInputとかはでてきません・・・。 >>549 それってunity だよね? VS 単体のサイインスコじゃいみないよ >>548 ありがとうございます。 2番めので解決しました。 これでようやっとまともにプログラミングできます。 >>550 ありがとうございます。 Unityの再インストールしていましたが、 VSは以前からUnity以前から使っていたので、関連付けがなされていなかったようです。 unityでプログラミングしてるけど動作が重い・・・。 2Dでもこんなに重いのか。 5年前のi5+SSD程度で開発するのが間違ってるのかな? スプライト1万w いや、UnityからVS立ち上げたり、閉じたり、実行のためにコンパイルしたりで時間が・・・。 チョコチョコ動作確認しようとすると、上の作業を行うのに時間がかかります。 なんか上手い手はないのだろうか? コンパイルってまさかスクリプト変更して毎回ビルドしてないよね? unityに移ると自動でコンパイルするけどそれが時間掛かってるってこと? あと毎回閉じる必要ないよエディタは立ち上げたままで 再生ボタンみたいなの押すと時間がかかるなと。 あー、VS閉じなくてもいいんですね。 そりゃそうか・・・。 これだけでも時間短縮できる。 >>527 おかげさまでようやくアニメーターの動きが作れました。 どうも有難うございました。 Unityでつくってbuildするものに、 使用期限を加えるプログラムって付け加えられますか? 例えば2020年の8月1日になったら立ち上がらなくなるとか。 >>560 unity IAP で出来そうだけど初心者向けではないので 【ゲームエンジン】Unityなんでも質問スレpart1 http://mevius.5ch.net/test/read.cgi/gamedev/1530167116/ へどうぞ >>561 ありがとうございます。そちらに行って聞いてみます。 マルチポストにならないようこの質問はここで終わります。 Unityって、プロジェクト名 や .apk 名に スペースを入れると何かまずいことってある? わざわざそんなこと試すだけ時間の無駄だろ。なんでスペース入れようとか思うんだよ >>564 やってみた とりあえず出来たけど、今後なんか問題ででくるのかなぁって >>565 ゲームタイトルにスペースを入れたい >>470 自分も検討してたんですが、あれってそんなに遅いんですか。 一つの方法は、マルチプラットライブラリを使ったプログラミングして、 Androidなどでテストしておいて、時々 Mac+iOS端末 でもテストするという 方法だと思うんです。やはりiOS端末を買う必要がありそうですが。 こういうキットの難点は、自分で作った感が無いので作品の誇りをもてなく なってしまうことです・・・。 超合金ロボットと、プラモデルでは後者の方が自分で作った感があるので 男の子に人気です。 それから、グラフィックモデルを作成するツールがあったとしても、 使いこなすのに「絵心」が必要であれば、それがないプログラムには 反って何もすることがなくてつまらなくなるでしょう・・・・。 >>571 誤:使いこなすのに「絵心」が必要であれば、それがないプログラムには 正:使いこなすのに「絵心」が必要であれば、それ(=絵心)がないプログラマには OSからチップまで全部1人で作りましたってやつ出てきても良さそうなのに出てこないな ウエハーゲットしてから完成まで 製造機器揃えるまで何百億円かかるし そういう問題じゃなく、余り色々なものが揃いすぎているとアマチュア プログラマに大事であるところの技術アピールをすることが難しくなる。 若いプログラマがゲームを作る動機の一つは、技術アピールして良い ゲーム会社や良いIT企業に就職できる選択肢を増やすことなんだかr。 雑談やら煽りは別スレで思う存分やってくれ ここは俺が作ったスレなんでな、継のスレいけや 【質問以外なんでもOK】Unity雑談スレッドその3 http://mevius.5ch.net/test/read.cgi/gamedev/1568370425/ >>566 やってみて問題ないならそのままでいいし 不安ならスペース抜きで作ればいい スペース有り無しがそのプロジェクトに取ってmustで重要ではないでしょ? ならあまり、そこを考えても仕方ない >>566 ゲームタイトルにいれたい と言うことは出来た実行ファイルを変えてもいいし ゲーム開始のタイトルをそうしてもいいだけだと思うよ public class Test : MonoBehaviour { protected void Start() { Hello(); } protected void Hello() { Debug.Log("Hello"); } } public class Test2 : Test { //new void Start() { Hello(); } new void Hello() { Debug.Log("こんにちは"); } } StartメソッドをオーバーライドせずにTest2のHelloメソッドを呼びたいのですが、方法はあるのでしょうか 素直にStartを上書きすればいいとは思うんですが、もしできたら便利なので知りたいです >>581 ちょうど最近同じようなことやったのが次のすれに 製作途中で得たUnityのミニ知識を披露するスレ http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/ の51の記事に書いといたので見てみて >>565 初心者にとっては全ての経験が身になるし文字だけより経験することで理解が深まるから五分程度で出来ることは無駄ではないよ 初心者スレなのでやってみて、その上で解らない事を聞くようにしましょ >>583 いやファイル名から何から日本語とかスペースとか鬼門やん?なのになんでわざわざ地雷踏みに行くんだよと >>584 何時の時代? unicode なら別に問題ないでしよ >>581 やりたいことは分かるが、その為にあるのがオーバーライドだぞ 親クラスのメソッドをprotected virtual void Hello()みたいに抽象化しておいて、子クラスでprotected override void Hello()と実装する これで親クラスのStart()で呼ばれるHello()は自動的に子クラスで実装したHello()になる ちなみに、新規でプロジェクト作成する場合 下図のようにスペース入りでプロジェクト名が付くよ https://i.gyazo.com/5076aa36a4400a17f8216df5b1b44e5d.png 不安ならスペースだけ半角にしてもいいんじゃない >>585 そう思うだろ? いまだにファイル名とかで日本語入れたりなんかすると挙動おかしくなるソフトあるぞ >>588 アセットとか英語のだとなるね そういうのは注意が必要 まぁアセット関連はこのスレでは対象外 const って定数名、全部大文字にするもの? いままで大文字でやってたけど 大文字だと define で定義したものとダブる可能性があるから Pascal形式で書くのが良いと聞いたけど実際どうなの? const って定数名、全部大文字にするもの? いままで大文字でやってたけど 大文字だと define で定義したものとダブる可能性があるから Pascal形式で書くのが良いと聞いたけど実際どうなの? >>591 このスレの>506前後見てみて なるべく過去の見てから質問しよ そんなに時間掛かるものでもないし 読んで理解するには多少の時間は必要なんだし >>590 constは使わないでstatic readonryを使う 今のUnityはdllを分ける機能があるからバグ避けのためにコンパイル定数は避けておくのが正しい 命名規則に関しては名前で定数かどうか判断できることに何の価値があるか考えて決めたら良い 俺は意味ないと断じて普通のプロパティと同じ扱いにしてる >>594 つまり constName みたいな初め小文字で、次の単語の初めは大文字ってことでOK? >>593 >506にまともな回答なくね? 定数についても全部大文字ではなくてPascal形式にするのが正しそうです。誰かと協業するわけでもなく個人のツール作成に使うものなので、どうでも良いといえばどうでも良いのですが プロの現場でどうしてる?という質問ならスレチだよ あくまでここは初心者が答えるスレ >>598 そういうのもスレチ そもそも俺のスレだし 俺のスレとかしょうもない主張すんなよ鬱陶しい 初心者質問スレなんて主張するほど目新しいもんでもないだろ。どんだけ器ちっさいんだよ >>600 はぁ? 未だ質問スレも建たないんだぞ 初心者スレだってまったく建たなかったんだよ まったく、スレも建てられず、質問の答えも書けないのによく吠えること 雑談スレにでも行ってね 弟子みたいな障害者まともに相手してたらキリがないぞ?w pngのドット絵をSceneに配置して再生すると、Game画面ではドットがつぶれてしまうのですが、どうすれば元画像のまま表示させることができるでしょうか。 http://s.kota2.net/1575534146.png なんでscale 5倍になってるん? 1倍で見てみて 右のInspecterのTransformのScaleに大きな数字を入れたらダメですか 2019.3 0f1にアプデしたら以下のエラーを喰らいました >Library\PackageCache\com.unity.2d.ik@1.1.0-preview.2\Editor\IKEditorManager.cs(5,36): error CS0234: >The type or namespace name 'Common' does not exist in the namespace 'UnityEngine.Experimental.U2D' (are you missing an assembly reference?) 調べたら同じエラーの解決方法を探している人がいてパッケージマネージャーの依存関係が上手くいってないので2D IK package to 1.3.0-preview.1にしろという回答を見つけました https://forum.unity.com/threads/script-associated-with-unity-2d-ik-has-a-namespace-which-cannot-be-found.738098/ しかしパッケージマネージャーの最新版はプレビュー込みでも1.1.0-preview.2なので困っています 1.3.0-preview.1に上げるにはどうしたらいいでしょうか? 一応ここ見たらもっと上まであるみたいなんですがパッケージマネージャーの「+」コマンド使ってもエラーになって入れ方がわかんないです https://bintray.com/unity/unity/com.unity.2d.ik ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる