【ゲームエンジン】Unity初心者質問スレBuild3

■ このスレッドは過去ログ倉庫に格納されています
2020/01/11(土) 14:28:59.18ID:wPvGtAaQ
ゲームエンジンUnityを楽しむ初心者による初心者の為のスレ
その為「アセットを購入しましょう」「チュートリアルやれ」「ググレカス」等禁止
初心者が親身になって初心者に教える。
又ググレの場合、何のキーワードでググるのか書いてね

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
 http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
※前スレ
【ゲームエンジン】Unity初心者質問スレBuild2
https://mevius.5ch.net/test/read.cgi/gamedev/1557293737/
2020/02/23(日) 20:27:42.27ID:LCQz7D0v
>>651
>>652
原因というか何かがつかめました

エラーを出していたインポートしたファイルがpluginsフォルダの配下に配置していたため、
そちらでずっと新規スクリプトを作成して試していたのですが、
スクリプトをPluginsフォルダ配下で作成すると
using Utf8Jsonの宣言ができなくなるようです

他のフォルダやAssetフォルダ直下では普通に宣言ができました

pluginsフォルダは特殊な設定のフォルダだということをマニュアルで確認しました
なぜこうなるかは不明ですが、基本的な所を間違えていたようです

お騒がせして申し訳ございませんでした
2020/02/24(月) 08:01:27.18ID:+9ZcXv8k
他人のアセットを使うときはUnityのバージョンによってエラーになることが本当に多い
Unityのバージョン間の互換性のなさは本当にクソ
アセットストアで買っても動かないとかざらにあるから、怖くてアセット買えないよねぇ
2020/02/24(月) 08:05:10.62ID:N/Kc3LQr
なんでUnityのバージョン上げるんだよ
ゲーム機のファームウェアじゃねえんだぞ
使用するライブラリが対応してない本体バージョンは使うな
えっ2年前で更新止まってるアセットがある?
2020/02/24(月) 09:32:03.15ID:zKtX1kFg
アセットを自分でエラー修正するのもまた勉強
2020/02/24(月) 09:53:14.96ID:JAzgYJi6
>>656
回避コード書くならまだしも直接手を加えたもの(を使って公開するの)は規約違反になるものもあるので注意
658名前は開発中のものです。
垢版 |
2020/02/24(月) 13:34:30.94ID:iVaHi9JI
>>640です。



https://xr-hub.com/archives/13135



Assets\Scripts\Goalmanager.cs(24,29): error CS0117: 'Input' does not contain a definition for 'GetMouseButtton'



これはどうすれば all compiler errors have to be fixed before you can enter playmodel
が出なくなるのでしょうか・・?

検索してもわかりませんでした・・
2020/02/24(月) 14:18:33.25ID:F9tEV+d+
エラーメッセージ丸ごとでググるとそのまま答えあったりするよ
新しいものではGetComponent使えと書いてあるけど
660弟子
垢版 |
2020/02/24(月) 14:29:58.46ID:4uIoNBTz
>>658
https://i.gyazo.com/620968d87bfcbf83cfbf1f4bd1598847.png
昨日の分にクリックだけ追加したコードです。
これで動くはずなので、フラグとか追加していけばいいかと思います。
これでエラーになる場合、何かが間違っているので、コードの画像とかのせてください
2020/02/24(月) 15:38:22.98ID:F9tEV+d+
InputにはGetMouseButtonの定義がないよと言ってる
InputはUnityEngine.Inputのことでusing UnityEngineしてるから省略できてる
Input にピリオドつけた時点でインテリセンスでGetMouseButton候補が出ると思うのだけれど
2020/02/24(月) 15:59:51.83ID:xo3Mb7RF
×GetMouseButtton
○GetMouseButton

tが多い初歩的なミス
663名前は開発中のものです。
垢版 |
2020/02/24(月) 16:17:20.52ID:Ug47wb2m
>>636
揶揄するわけではないけど、こういう書き込み見ると初心者の人にはビジュアルランゲージの方が教えるのに向いてるってのは真だなーと思う
664名前は開発中のものです。
垢版 |
2020/02/24(月) 17:14:52.96ID:iVaHi9JI
>>663
playmakerを買った方が良いという事?
もしくはue4でブループリント使うとか。
もしくはそもそも、まずc#を学ぶ。
665弟子
垢版 |
2020/02/24(月) 17:39:28.39ID:4uIoNBTz
今回のはコピペすればいいだけなんだが
Windowsなら選択してCntrl+C、その後Cntrl+V
666名前は開発中のものです。
垢版 |
2020/02/24(月) 18:08:44.89ID:A6C4ojr1
Hierarchyで特定のTAGが付けられているゲームオブジェクトを検索して
Hierarchyに表示したいのですがどうすればよいのでしょうか?

※csファイルでHierachyにある特定のタグを検索して情報を取得する方法は
わかります
あくまでもHierachy上で特定のTAGがついているゲームオブジェクトを検索して
表示させたいのです

やり方をご存じの方がいらっしゃいましたら教えてください
よろしくお願いします
667名前は開発中のものです。
垢版 |
2020/02/24(月) 18:19:26.64ID:iVaHi9JI
コピペしたらいけました!
どこに問題があったのかは謎
打ち間違えてはいないはず・・
2020/02/24(月) 18:39:11.38ID:B7d3DSpn
質問失礼します。
unity2dでtransform.translateでオブジェクトを移動させているのですが、左右に移動させたときにz座標が変動してしまいます。
何か考えられる理由はありませんか…?
669名前は開発中のものです。
垢版 |
2020/02/24(月) 19:00:32.30ID:A6C4ojr1
>>668

public function Translate(translation: Vector3, relativeTo: Space = Space.Self): void;
public function Translate(x: float, y: float, z: float, relativeTo: Space = Space.Self): void;

Translateはマニュアルでこうなっている
ゆえにオーバーロードで2種類の動きをするということになっている
デフォルト引数になってるのは無視していいので ポイントになるのは

1・Vector3を引数とした場合
2・x y z それぞれのfloatを引数とした場合
の2パターンがある

左右に移動させたい場合は x軸だけを変えればいいので
Y軸かZ軸に余計な値が入っていればうまくいかない

※参考例

Vector3 tamesi = new Vector3(10.0f,0.0f,5.0f);
とした場合 x軸だけじゃなくて、z軸にも値が入っているから動いちゃう
Vector3 tamesi2 = new Vector3(10.0f,0.0f,0.0f);
というやつを引数にすればいい

使用するときに
transform.Translate(tamesi)とすればx軸とz軸に動くし
transform.Translate(tamesi2)とすればx軸にしか動かない

x,y,z 3つの値を使う場合も同様にYとZの値に注意する

つまり、yとzに余計な値が入っていれば
上に動いたり、奥に動いたりするわけなんですけど
この回答でいけますか?
670名前は開発中のものです。
垢版 |
2020/02/24(月) 20:16:41.80ID:B7d3DSpn
>>669
668です
transform.Translate(0.0f, 0.1f, 0.0f);
これと同じ書き方でxとyの値のみ変更したものを4つ作り、指定のキー入力でそれぞれ呼び出し上下左右の4方向に移動するようにしています。
zは全て0.0fにしているのですが、xが変動すると同時にzも変動してしまいます。
671名前は開発中のものです。
垢版 |
2020/02/24(月) 20:25:46.99ID:4uIoNBTz
>>670
とりあえずコードはろう

みんながみんな、youの環境じゃないんだよ
672名前は開発中のものです。
垢版 |
2020/02/24(月) 20:37:54.32ID:A6C4ojr1
>>670
これで規定通りの動きができた

public class Cube_Move : MonoBehaviour
{
void Update()
{
//左に移動
if (Input.GetKey(KeyCode.LeftArrow))
{
this.transform.Translate(-0.1f, 0.0f, 0.0f);
}

//右に移動
if (Input.GetKey(KeyCode.RightArrow))
{
this.transform.Translate(0.1f, 0.0f, 0.0f);
}

//上に移動
if (Input.GetKey(KeyCode.UpArrow))
{
this.transform.Translate(0.0f, 0.1f, 0.0f);
}

//下に移動
if (Input.GetKey(KeyCode.DownArrow))
{
this.transform.Translate(0.0f, -0.1f, 0.0f);
}
}
}
673名前は開発中のものです。
垢版 |
2020/02/24(月) 20:38:31.64ID:A6C4ojr1
※上のソースコードだけど
ヒエラルキーにCubeっていう3Dの四角い箱を作って
それに上記のcsファイルをアタッチしている
これでx軸、y軸に キーボードの上下左右に動いてくれる

z軸に動いてないかどうかは実行した後に
z軸の値が変わってなければOKっていう認識

一応上記のcsファイルをアタッチしたら、想定の動きができたので
上記コードで試してもらえますか?
ちゃんと左右のキーボードで左右に移動
上下のキーボードで上下に移動してくれました

※こちらの環境では問題ありません
674名前は開発中のものです。
垢版 |
2020/02/24(月) 20:47:59.55ID:4uIoNBTz
>想定の動きができた
なら問題なくね?
675名前は開発中のものです。
垢版 |
2020/02/24(月) 20:54:56.65ID:A6C4ojr1
>>673
俺は質問者じゃないからね
質問してる人は>>670
2020/02/24(月) 21:25:25.99ID:B7d3DSpn
>>672
>>673
668です
スクリプト自体はそちらの物とほとんど同じでした。
今別のオブジェクトにスクリプトだけをつけて動かしたところzの値が変動しなかったのでrigidbodyかboxcolliderが原因かも知れません
もう少し自分で原因を調べてから質問し直したいと思います。
677名前は開発中のものです。
垢版 |
2020/02/24(月) 21:35:08.27ID:A6C4ojr1
>>676
Rigidbodyを付けている場合、デフォルト設定で重力が働くようになってるからね
勝手に落下したりする

Rigidbodyで物理演算を無効にする場合は
DynamicではなくKinematicにすればいい
Kinematicにすれば重力の影響を受けないし、ほかのオブジェクトが
ぶつかってきた場合も影響されて動くことはない

rigidbodyにあるvelocityは移動速度(速度ベクトル)だから物理演算とは
関係なく動かすことができる
Translateも同様に物理演算とは関係なく動かすことができる

物理演算で動かす or (速度ベクトルや座標の位置を変更することで動かす)
物体を動かす場合 上記2点に気をつかえばいい
2020/02/24(月) 21:44:51.32ID:B7d3DSpn
>>677
668です
インスペクタのrotation.yに誤って値が代入されていました
値を0に変えるとzの値が変動しなくなったのでこれが原因だったようです。
いろいろアドバイスいただきありがとうございました。
679名前は開発中のものです。
垢版 |
2020/02/25(火) 00:57:38.64ID:D2FtDyCq
Blenderで作成したモデルのUnity上での表示について質問です。
・Unity 2019.3.2f1 (64-bit)
・blender:ver27.9b(アドオン無)
・ファイル形式:FBX

上記のブレンダ―で作成したモデルの一部オブジェクトがUnityで面が裏返って表示されます。
ブレンダ―上では特段異常がなく法線も表を向いており、レンダリングなどしても正常に映っております。
また、法線を裏返すと、Unity上では面が表に来るのですが、光の当たり方が上下逆になってしまいます。
法線の方向の整合性を取り直す方法はございますでしょうか。
もしくは法線を裏向きのまま光の当たり方を逆にすることは可能でしょうか。

よろしくお願いいたします。
680弟子
垢版 |
2020/02/25(火) 08:53:12.83ID:disfb7H3
とりま
blenderからUnityへ3Dモデルをエクスポートする
https://dkrevel.com/unity-and-blender/blender-to-unity-fbx-model
681名前は開発中のものです。
垢版 |
2020/02/25(火) 10:39:41.76ID:WedOhwcm
>>664
いや一般論としてビジュアルのやつならシンタックスエラーは起こらないから学習の上での障害ひとつないなというだけ。

プレイメーカーはいいらしいけど情報少なくてこれがやりたい->ぐぐる->プレイメーカーに翻訳 とならざるを得なそうでそれも大変そうだけどどうなんだろ

あと公式のツールがボチボチプレビューくる?
2020/02/25(火) 15:03:22.29ID:1jlyuXHI
>>667
>>658よくみたら間違いがわかるはず
2020/02/25(火) 21:37:14.12ID:7wTy65re
検索ワード「テクスチャを重ねて描画する」(URLが記述できないようなのでこれで失礼します)
こちらのサイトにテクスチャを重ねて描画する方法が載っておりました

これができれば一つのモデルに「肌」→「目」→「口」などを順に描画させ、
テクスチャを付け替えることでキャラエディットみたいなことができるのではと思い、
Unityを確認してみました

しかし、BlenderからインポートしたFBXファイルにはMesh Rendererではなく
Skinned Mesh Rendererがありました
こちらもマテリアルを複数指定することができるようだったので試してみたのですが
前述のようにマテリアルを割り当てても、何故か目のパーツだけがどこに設定しても優先的に描画され、
続いて口、肌においては1つ置いた時にしか描画されませんでした

優先順位も気になるところではありますが、ともかくテクスチャを重ねて描画する方法を教えてください
684弟子
垢版 |
2020/02/25(火) 22:00:46.03ID:disfb7H3
【Unity】マテリアルに複数のテクスチャを重ねて表示する ねくすとねくすと
http://next-next.com/2019/04/19/%E3%80%90unity%E3%80%91%E3%83%9E%E3%83%86%E3%83%AA%E3%82%A2%E3%83%AB%E3%81%AB%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%86%E3%82%AF%E3%82%B9%E3%83%81%E3%83%A3%E3%82%92%E9%87%8D%E3%81%AD%E3%81%A6%E8%A1%A8/

Unity Tips(13:テクスチャを重ねて描画する)
https://t-tutiya.はてなblog.com/entry/20171104/1509778621
はてな=ローマ字
とか?
2020/02/26(水) 09:34:45.20ID:XSiK3Jmd
>>684
優先順位に関しては不明でしたが、重ねて描画はできました
手あたり次第なんでも透過にしていたのが原因だったようです

ありがとうございました
2020/02/26(水) 09:37:41.45ID:XSiK3Jmd
一つ忘れていました
テクスチャをシェーダーでまとめて表示する方法もあると伺っています
マテリアルの方を複数重ねて表示させていますが、
処理の負荷的にはマルチプレイオンラインゲームに耐えられるものでしょうか?
687名前は開発中のものです。
垢版 |
2020/02/26(水) 17:30:16.94ID:GigIyj8j
一つの機能ごとにスクリプトを作っているのですが
それらのスクリプトをまとめて使う本スクリプトは
すべてをGetComponentする
すべてを本スクリプトにコピペする
以外に良い方法はありますか?
688弟子
垢版 |
2020/02/26(水) 18:40:25.13ID:ZpPffGJ6
インターフェースで使うの選んで行けばいいんじゃない
689名前は開発中のものです。
垢版 |
2020/02/26(水) 19:20:56.86ID:GigIyj8j
よくわからないです
インターフェースをどのように使うつもりですか?
690弟子
垢版 |
2020/02/26(水) 20:15:59.17ID:ZpPffGJ6
こんな感じ
https://i.gyazo.com/b8a77351326875f8262d35ccf47ed353.png
メンドイから同じファイルで定義しているけどそれぞれの処理は別ファイルでね
691名前は開発中のものです。
垢版 |
2020/02/26(水) 20:33:18.23ID:808/gSFo
スレチかもしれないですが、

例えば2dで腕が無くなっても動き続ける(アニメーションし続ける)キャラクターを作りたい場合ってunityだとどういう実装にすれば良いでしょうか?
パーツ毎に分けてスクリプトで制御するのか、腕が落ちた時のアニメーションも別個で用意するのが良いのか…
692名前は開発中のものです。
垢版 |
2020/02/26(水) 20:38:57.37ID:GigIyj8j
>>690
確かにできました。ありがとうございます。
693弟子
垢版 |
2020/02/26(水) 21:07:35.79ID:ZpPffGJ6
>>691
スプライト差し替えるか、動きも変えたいならアニメーションコントローラからランタイムコントローラにオーバーらいど
2020/02/26(水) 21:36:09.23ID:XSiK3Jmd
まだ前回の質問の回答をいただいていないのに、再度の質問失礼します。

>>546
ここで以前、Blenderからパーツをアニメーションごとエクスポートし、
インスペクターから各パーツにアニメーター等を割り当てればアニメーションができて、
パーツを組み合わせてのキャラクターエディットができる、と考えていたのですが、

各パーツにアニメーションがある状態でエクスポートするため、パーツ毎FBXの容量が大変大きくなり、
以前考えていたSetActiveで表示パーツを切り替える方法でのキャラエディットよりもひどい状態になることに気づきました
以前教えていただいた方法がよく理解できなかったこともあるのですが

Blenderでアニメーションのボーンと各パーツを別々にエクスポートし、
Unityで動的に組み合わせてアニメーションをさせるにはどうしたらよいでしょうか
695名前は開発中のものです。
垢版 |
2020/02/26(水) 23:17:53.49ID:tqiPAYEJ
アセットストアの SD Unity-Chan Optimaize Custom
のデフォルトSDユニティちゃんを使おうとしたのですが
なぜか初めは仰向けになっていてtransformで起こして再生すると前に倒れて
地面にめりこみ、起こさずに再生すると起きるのですが宙に浮いて落下モーション
のような状態になってしまいます。( standard asset の third person user control をアタッチしました )
rigit body の freeze rotation にチェックを入れてもダメでした・・
どうすれば正常に直立できるのでしょうか?
696名前は開発中のものです。
垢版 |
2020/02/27(木) 00:07:31.23ID:j0OKNYmt
>>695です。
isTriggerにチェックを入れ、use gravityを無効化する事で歩く事は出来ましたが
途中で地面をすり抜けて落下してしまいます・・
停止時に立てると再生時に倒れてしまうので仰向けのままです・・
2020/02/27(木) 00:25:16.25ID:T6a2r4TR
コリジョンを目視してごらんなさい。
どうしてかわかると思う。
698名前は開発中のものです。
垢版 |
2020/02/27(木) 00:29:10.74ID:j0OKNYmt
>>696です。
ground check distance の値を大きくしたらすり抜けなくなりました。
停止時の仰向けの直し方はいまだにわかりません・・
699名前は開発中のものです。
垢版 |
2020/02/27(木) 10:50:04.31ID:fVMfcjq3
>>638
ちと色々調査したらアニメーションカーブらしい事がわかって
次の拡張でカーブ取得してやってて、これなら値がクリアされないようです
【Unity】AnimationClipのMissingなパスを見つけて解決しやすくするエディタ拡張
http://tsubakit1.hateblo.jp/entry/2016/01/26/015331#%E5%B0%8E%E5%85%A5%E3%81%A8%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89
700弟子
垢版 |
2020/02/27(木) 11:01:42.14ID:fVMfcjq3
>>695
インポートした状態でSceneフォルダにある_preview開くとどうなります?
こんな感じなら問題ないと思います
https://i.gyazo.com/aec7d422d4fa7daed5d75aaf20da61b1.png

その後、どれか一体のPrefabを新しいシーンに貼ってみてください
701弟子
垢版 |
2020/02/27(木) 11:08:58.25ID:fVMfcjq3
これが原因かww
https://i.gyazo.com/9a157d0f74483f82aa76f2fde6ed3a14.png

コライダーが楕円なのねw
702名前は開発中のものです。
垢版 |
2020/02/27(木) 18:27:02.37ID:yiLTwQkg
Blender上でモデルにpng画像を貼り、画像の透明部分のポリゴンを透明にするにはどの様にすればよいでしょうか?
703702
垢版 |
2020/02/27(木) 18:28:15.58ID:yiLTwQkg
Blender上で透明にする方法は解るのですが、Unity上では透明にもならず、テクスチャすら貼られていない状態です。
ご存知の方いらっしゃいましたら教えて下さい。お願い致します。
704名前は開発中のものです。
垢版 |
2020/02/27(木) 20:35:10.68ID:Ot7wiF5X
Debug.Logの簡略化は可能でしょうか?

void pr (object ob){Debug.Log(ob);}

例えば上のコードをデバックしたいスクリプトの中に書けばpr()だけでデバッグできますが
これだと各スクリプトごとにこのコードを書かないといけないので効率が悪く感じます。

public static class debg
{
public static void pr ( object ob ){Debug.Log(ob);}
}

他のスクリプトでも共有できるようpublic static classを宣言すれば良いのかと思ったのですが
これだとdebg.pr()と書かないといけないので元のDebug.Logと似たようなものになってしまいます。
何か良い方法があれば宜しくお願いします。
705名前は開発中のものです。
垢版 |
2020/02/27(木) 21:20:47.82ID:q3ikkHtj
>>703
マテリアル作らないとダメでは
706名前は開発中のものです。
垢版 |
2020/02/27(木) 21:31:57.49ID:hKi1HcO8
>>703
ちょうど先日やっていたところなのでお答えいたします

BlenderからUnityへインポートしたモデルデータはUnity上でテクスチャを張りなおす必要があります
(一度張りなおすと命名規約だか何だかで自動的に張られるようですがこの辺は詳しくないので割愛します)

インポートしたモデルデータを確認してみてください
インスペクタービューにMaterialsというボタン(タブ?)があります
マテリアルが全部「なし」になっているのを確認できると思います

テクスチャの画像ファイルを別途Unityへインポートし、メニューのアセット、もしくは右クリックから、
作成→マテリアルでマテリアルを作成し、そのマテリアルにテクスチャの画像ファイルを割り当てます

透明化を有効にするには、マテリアルのインスペクタービューでRendering ModeをCutOutにしてください

こうしてできたマテリアルを前述に確認したMaterialsで割り当てることでテクスチャが張られます

なお、インポートしたモデルのプレハブ上でMesh Renderer、Skinned Mesh Rendererというコンポーネントを探し、
そこのマテリアルパラメータで複数のマテリアルを一つのモデルに割り当てることができます
透明化を利用してテクスチャを重ねて描画できます
707名前は開発中のものです。
垢版 |
2020/02/27(木) 23:22:11.53ID:j0OKNYmt
>>695です。
プレビューシーンを読み込むと正常だったのでそこから色々追加していって解決しましたww
しかしジャンプ後のすり抜けは未解決です。
今調べてはいますが・・
2020/02/28(金) 07:51:11.31ID:YWFNLsBv
>>704
print()使ったら?
709弟子
垢版 |
2020/02/28(金) 10:16:37.03ID:3Lsu3jjC
>>704
ベーススクリプト作成してそこにデバッグログ機能をもたせて
全部のスクリプトをそこから継承

>>707
>しかしジャンプ後のすり抜けは未解決です。
これ質問じゃなくて愚痴だよね?
状況も何を追加して何をすり抜けるのか書いてないから・・・
2020/02/28(金) 11:38:34.50ID:9RFMa+Av
質問です
フォントファイルをunity上で読み込んでTextmeshproでSDF化した後、
このSDF内のMaterialとAtlasのみをファイルとして抽出する事は出来ないのでしょうか?
711694
垢版 |
2020/02/28(金) 11:53:01.91ID:iaQ+QUKs
>>694
から少しだけ進展があったので報告、および質問

https://qiita.com/kaiware007/items/4c7a4b9862fae84d4023
こちらのサイトを参考に、パーツのメッシュ(SkinnedMeshRenderer)の各プロパティ(たぶんウェイトやボーン)を、
ベースのボーンのものに書き換えました
古い生地なのでオブジェクトをDestroyできなかったり、取得できないプロパティを参照していたりと
ソースをそのまま使うことはできませんでしたが、とりあえずコンパイルを通して動かしました

ボーンに合わせてアニメーションをしているような挙動があるのが確認できましたが、
メッシュの位置がnew Mesh()をした時に大幅にずれてしまいました

新しいメッシュにメッシュの位置情報を書き込んでいないのが原因かと思われ、
メッシュの位置はVerticesというもので操作しているらしいという所まで突き止めたのですが、
ここからどうしていいのかがわかりません

試しにベースのボーンを持つオブジェクトや、その子オブジェクトとしていったんインスタンス化したパーツの
Verticesを割り当てたら更に大幅にずれてしまいました

メッシュの位置を想定した場所に置くためにはどうしたらよいでしょうか?

または、キャラエディット機能ならもっとスマートにできる方法をご存じでしたらご教示願います
2020/02/28(金) 12:52:20.39ID:ALzUb0si
2019で5.6の講座を見ながらやっています

delegateSample.csに
public class A{
public int a;
}
public delegate void delegateSample(A aInstance);

public class delegateSample : MonoBehavior{

}

みたいな感じのファイルをアタッチすると
the script needs to derive from monobehaviourというエラーが出るんですけど
ファイル名と同じクラス名のモノビヘイビャーを継承しているファイル内に
別の素classを入れたファイルはアタッチできなくなったのでしょうか?
713名前は開発中のものです。
垢版 |
2020/02/28(金) 12:55:26.53ID:ALzUb0si
delegateSample.csに内にある
(コード)
をからのオブジェクトにアタッチ
です
714弟子
垢版 |
2020/02/28(金) 13:27:37.48ID:3Lsu3jjC
>>712
定義の仕方かなぁ
https://i.gyazo.com/b9ecfe028a2aba70f60a0b040654f28a.png
とりまどっかから拾ったコードをUnityぽくしてみた
2020/02/28(金) 14:02:41.13ID:ALzUb0si
なるほど
ありがとう
それだ通るんですね
ただ動画の人も通っているので
まあそれはほかにも見えないファイルがあるんですが
まあもう少し勉強してみます
2020/02/28(金) 14:48:01.99ID:/AKvkhm4
輪投げのイメージで画面を下から上にフリックすると用意してあったプレハブが生成されてフリックした方向と速度で発射されるというのを作るのは難しいですか?

輪のオブジェクトを画面に出してスタートすると自然落下するという所まで来ましたが、何をしたら飛ぶのかわかりません

何を調べれば良いかもわからないので使いそうな命令?だけでも教えて頂けると助かります
よろしくおねがいします
2020/02/28(金) 14:51:39.15ID:sAVdF7st
touchした座標とそこからドラックした距離、時間を使って力の値を導き出します。
その値を、輪にadd forceなどで移動させます。
2020/02/28(金) 14:55:35.35ID:60vQiGEi
タップしたらそこに輪が置かれるとか、タップすると輪が真上に飛んでいくとか、
そういうとこからちょっとづつ要素増やしたり変えていったりすればいいのでは
いきなり作るのは大変だよ
2020/02/28(金) 19:30:58.44ID:/AKvkhm4
>>717,718
ありがとうございます
取り敢えずフリックは置いておいて、奥に投げるという動作を実装するために

startにaddforceを書いたスクリプトをセットして、生成された瞬間奥に飛ぶプレハブが出来ました
それをタップした位置に生成したのですが、どこをタップしても真ん中に向かって飛んでしまいます

プレハブをスクリプトからinstantiateしないで最初からゲーム画面に置いた時は真っ直ぐ奥に飛びます

ttps://yumineko.com/click-tap-position/
タップ位置は上記URLを参考にして
var pos = Camera.main.ScreenToWorldPoint (Input.mousePosition + Camera.main.transform.forward);
で取得しています

関係あるかわかりませんが、Debug.logでposを取得すると、9:16の画面でX軸が左端が-0.3、右端が0.3と狭い気もします

考えられる原因はありますでしょうか?
2020/02/28(金) 20:11:04.22ID:Medy2iIU
そう言う場合は、極端な数字を入れるがよろし。
出てきたposのxに10、100、1000を、変わらなければ順に掛けてから生成。
2020/02/28(金) 20:39:10.35ID:0RwkjVUc
生成位置と射出方向は分けて考えよ?
ScreenPointToRay使ったら?
2020/02/29(土) 14:33:42.33ID:1kV/1GjB
>>720,721
ありがとうございます
xに10を掛けたら意図した挙動になりました!

現在controllerというオブジェクトに貼り付けたスクリプトでタッチを取得→public float xにpos.xを代入後プレハブを生成

プレハブのスタートでcontrollerオブジェクトをfindし、スクリプトをゲットコンポーネントしたのちにaddforceのxにcontroller.xを指定して射出方向をコントロールしています

findを多様するのは良くないと見かけたのですが、プレハブにゲームオブジェクトをアタッチする事は出来ませんよね?

今後このシステムを輪投げではなく弾を発射などの連射する様なゲームに流用しても大丈夫なのでしょうか?

フリックによるコントロールにも挑戦してみたいと思います、ヒントをくれた皆様ありがとうございました!
2020/02/29(土) 14:48:49.72ID:J+xpv0tu
>>722
スクリプトにアタッチ指定すればいいかと。
やったことないけど、ずっとやろうやろうと思って今w

また、findはゲームフローのLOOPで負荷にならない場所でやればいいと思ってます。プロじゃないので。
2020/02/29(土) 15:17:28.57ID:1kV/1GjB
>>723
なるほど、スクリプトにアタッチ指定というのはやり方がわかりませんが方法はあるんですね

今の所どれだけ連打しても負荷は感じませんが実機でテストプレイするしかないですね
まだ初心者なので弊害があるまでは動けば良いというスタンスでやってみます!
725名前は開発中のものです。
垢版 |
2020/02/29(土) 15:24:56.97ID:b8huESie
UbuntuでUnityでゲームを作ることはできますか?
2020/02/29(土) 15:43:48.81ID:NqqYgWAQ
日本語でおk
727弟子
垢版 |
2020/02/29(土) 17:02:02.97ID:wBtxqkZH
検索結果
ウェブ検索結果
UbuntuでゲームエンジンのUnityをインストールする手順
https://www.virment.com/how-to-setup-unity-ubuntu/
728名前は開発中のものです。
垢版 |
2020/02/29(土) 22:05:12.41ID:b8huESie
>>726
すまん、語彙力ないしコミュ障なんや
>>727
サンガツ
729名前は開発中のものです。
垢版 |
2020/03/01(日) 13:02:22.82ID:W5NbcG3C
unity2018.4.17f1です。
3Dキャラを表示するにはdirectional lightしかないのでしょうか?
部屋や特定の範囲ごとに明るさを変えたい場合は
どうやってキャラクターを照らせば良いのですか?
(directional lightがないとキャラが真っ黒になるので・・)
730弟子
垢版 |
2020/03/01(日) 13:13:00.10ID:bg2PdJXV
Unityライトを使った演出の作り方
https://styly.cc/ja/tips/lightshadow_discont_light/
731名前は開発中のものです。
垢版 |
2020/03/01(日) 13:35:39.08ID:W5NbcG3C
>>729 です。
回答ありがとうございます!
2020/03/02(月) 22:12:18.88ID:FZAofo0u
助けてください…!!!!
Unity 2018.4.16f1で個人練習用にフリー版NGUI「ngui270.unitypackage」を
インストールしたのですが、UITextureコンポーネントなど、NGUIのコンポーネントが出てきません。
UnityにはNGUIフォルダもできておりシェーダーもあるのですが、どうしたら正常に使えるようになりますでしょうか
2020/03/02(月) 22:14:59.41ID:FZAofo0u
↑UIStretch.cs
UITextList.cs
UITexture.cs
UITiledSprite.cs
UITooltip.csなどなど、入っていることは確認できております
734名前は開発中のものです。
垢版 |
2020/03/03(火) 11:25:58.98ID:DIrug5M2
なんで今更NGUIなんか入れるの
735弟子
垢版 |
2020/03/03(火) 11:42:48.43ID:Qbw0Io/Y
>>732
ソースの中身が古くて無くなった命令つかってるよってエラー出てるでしょ?
https://i.gyazo.com/ba87315c126c217dfc4529415428e7d5.png

とりあえず
Camera.isOrthoGraphic → uiCamera.orthographic
Renderer ren = go.renderer → Renderer ren = go.GetComponent<Renderer>()
Collider col = gameObject.GetComponent<Collider>(); //collider;

こんな感じで直すしかないですね
結構一杯あるんで大変です
2020/03/03(火) 17:16:42.45ID:hGrdnLAs
Ubuntuの方のUnityは名前紛らわしいから遂に名称変えるらしいな
2020/03/03(火) 17:29:36.35ID:wp3iypza
Ubunty
2020/03/03(火) 18:41:04.20ID:09uaPptx
Utility フォルダと間違えそうになることはあるw
2020/03/03(火) 19:42:39.97ID:VHMxnF1X
>>736
まあ、Unityという微妙に一般な単語を使ったほうが悪いような気もする
740名前は開発中のものです。
垢版 |
2020/03/03(火) 22:23:36.98ID:ApYXiw1K
Unity2019.3.3f1です。
アセットストアではなくユニティちゃん公式サイトのSDユニティちゃんを使って
クリックしたキューブの上に仰向けorうつ伏せで一定の高さから落下させて
ボードゲームのコマとして使いたいのですが
どういうスクリプトを書けばいいですか・・?
落下というより重力に関係なく空中からキューブの上まで
移動させる処理でも良いのですが。
2020/03/04(水) 01:03:41.86ID:M9QGHLDI
ここは通信学習の場ではありません。
まず自分でできるところまで組んでください。
そして、思うように動かないところを、自分がどう組んだか説明し、どうしたいのか、現在はどう動いてしまうのかを説明してください。
話はそれからになります。
742弟子
垢版 |
2020/03/04(水) 06:30:43.99ID:BZLTYd6o
>>740
とりまユニティちゃん公式の「SD_UnityChan-1.unitypackage」を2019.3.0f6にてインポートしたところ
エラーが出たので、そこはまず修正します
using System.Security.Policy; ← これをコメントにします

んでもってユニティちゃんを配置してcubuを配置してみましょうか
落ちるのでRigidBodyを配置します
ぶつかりにはぶつかる方と自分にコライダーを設置
んでこんな感じ(ここまではスクリプトは一切書いてないです)
https://imgur.com/OAtA2yB
あとはCubeを沢山配置 ←これにはPrefabにするといい
んでクリックしたcubeを取得してその位置の上方に配置
それぞれ「Unity オブジェクト クリック」等でgglと詳細でます

他にも色々とキーワードが分かったお思うので、それでggってみましょう
743弟子
垢版 |
2020/03/05(木) 14:14:48.92ID:u6b+D0lk
>>741
>ここは通信学習の場ではありません。

その通り、ここはあなたの主張をする場ではありません
答がわからないなら書かないように
ちゃんと>1を読み理解しましょう
744名前は開発中のものです。
垢版 |
2020/03/05(木) 14:57:39.66ID:2PrydH1X
関東無政府主義国へようこそ!
ttp://x0000.net/topic.aspx?id=3629-0
2020/03/05(木) 18:01:18.62ID:w+mRocnN
>>743
その通り、ここはあなたが自治するところではありません。
スルーできない正確ならちゃんと>1を読み理解しましょう
746弟子
垢版 |
2020/03/05(木) 18:29:38.21ID:u6b+D0lk
>>745
ごめん、スルー出来ない性格なんだよ

ちゃんと正確に書こうねwwww

添削終わり
2020/03/05(木) 21:17:23.69ID:cTpBbpSo
UNITYのクラスの概念がよくわからないのでご教授くださいm(__)m

UNITYでよく使われている他オブジェクトのクラスの取得で、

GameObject 変数;
クラス名 変数 = GetCompornent<クラス名>();

みたいなのがありますが、
これはC#の教本とかによく載っている、「プレイヤークラスを作ってインスタンスを作成する」
みたいにインスタンスを作っているという解釈でいいんでしょうか?
748弟子
垢版 |
2020/03/05(木) 21:38:49.20ID:u6b+D0lk
GetCompornent はあくまで、その指定した<クラス名>にアクセスする為に参照を作成しているだけです
「インスタンスを作成する」場合には、New指定が必要です

例えば
int original
int a = original
int b = new int();
b=original;

では、aはoriginalの参照だけど、bは新規作成になります

現在、何のクラスの何にアクセスしているかによって、そこに値を入れる事で
何が変わるかは、ちゃんと確認した方がいいと思います

ある関数で関数内だけで値を変えたつもりが、全部変わっていたって事もありますので

私が言えるのはこれくらいだけど
>>745さんはもっときっと上手く説明してくれるんではないかな、わざわざあんなレスしてるんだから

期待してますよ

それからインスタンスですが、これはあくまで独自の存在だと解釈していいかと思います
2020/03/06(金) 05:14:58.37ID:jDntWvjW
サンプルコードでもセミコロンないとモヤる
2020/03/06(金) 10:35:13.46ID:88urs3PV
ゲーム中に「操作の説明」を表示したいと思っています。
例えばキャラクターがドアの前に来たときに、ドアを開けるボタン、
例えばAボタンなら「A」のアイコンを表示するようなものです。

そこで、今現在キーボード操作なのか、ゲームパッド操作なのか、
「ドアを開けるボタン」にどのボタンorキーが紐付けられているのか、
を取得しなくていはいけないのですが、この方法がわかりません。

方法そのものではなく検索キーワード、実現できるアセットなど何でもいいので
よろしくおねがいします
2020/03/06(金) 11:08:14.95ID:hgj9cGoZ
値型をnewしてる割に偉そう
752名前は開発中のものです。
垢版 |
2020/03/06(金) 12:16:05.50ID:gMHoqhp3
>>747
プレイヤーのインスタンスを作るってのはどっちかいうとプレイヤーのプレファブをインスタンス化するの方がイメージ近いと思う。
その時作られたGameObjectにはいろいろcomponent としてのスクリプトが引っ付いてるけどGetComponentはその引っ付いてるものの参照を持ってくる感じ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況