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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
752
(1): 名前は開発中のものです。 [] 2020/03/06(金) 12:16:05.50 ID:gMHoqhp3(1) AAS
>>747
747(1): 名前は開発中のものです。 [sage] 2020/03/05(木) 21:17:23.69 ID:cTpBbpSo(1) AAS
UNITYのクラスの概念がよくわからないのでご教授くださいm(__)m

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

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

みたいなのがありますが、
これはC#の教本とかによく載っている、「プレイヤークラスを作ってインスタンスを作成する」
みたいにインスタンスを作っているという解釈でいいんでしょうか?
プレイヤーのインスタンスを作るってのはどっちかいうとプレイヤーのプレファブをインスタンス化するの方がイメージ近いと思う。
その時作られたGameObjectにはいろいろcomponent としてのスクリプトが引っ付いてるけどGetComponentはその引っ付いてるものの参照を持ってくる感じ
753
(1): 弟子 [] 2020/03/06(金) 12:33:05.86 ID:8vF8ZWlw(1) AAS
>>750
750(1): 名前は開発中のものです。 [sage] 2020/03/06(金) 10:35:13.46 ID:88urs3PV(1) AAS
ゲーム中に「操作の説明」を表示したいと思っています。
例えばキャラクターがドアの前に来たときに、ドアを開けるボタン、
例えばAボタンなら「A」のアイコンを表示するようなものです。

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

方法そのものではなく検索キーワード、実現できるアセットなど何でもいいので
よろしくおねがいします
「unity キーコンフィグ」「unity ゲームパッド」ここら辺で一応キーボード、マウス、ゲームパッドが分かるかなと

>>751
751(1): 名前は開発中のものです。 [sage] 2020/03/06(金) 11:08:14.95 ID:hgj9cGoZ(1) AAS
値型をnewしてる割に偉そう
偉そうじゃなくて偉いのよ、ちゃんとスレの主旨として質問に答えてるからね、雑談したいなら雑談スレへどうぞ
754: 747です [sage] 2020/03/06(金) 15:43:14.30 ID:vJ19FqQh(1) AAS
>>748
748(1): 弟子 [sage] 2020/03/05(木) 21:38:49.20 ID:u6b+D0lk(3/3) AAS
GetCompornent はあくまで、その指定した<クラス名>にアクセスする為に参照を作成しているだけです
「インスタンスを作成する」場合には、New指定が必要です

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

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

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

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

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

期待してますよ

それからインスタンスですが、これはあくまで独自の存在だと解釈していいかと思います
>>752
UNITYの本とc#の本で同時に勉強してるので混乱してました
C#本に書いてあるインスタンスの使い道がまだよくわからないですが
とりあえずは単純にプレファブからインスタンス生成って考え方でいこうと思います
ありがとうございます
755
(3): 名前は開発中のものです。 [sage] 2020/03/06(金) 22:24:12.21 ID:1ULsHRya(1/2) AAS
簡単なライトノベルを作りたいと思い、
画面下にテキストウィンドウが出てクリックすると次の文章が出るといったことをやりたいのですが、
スクリプトでやるのは難しいので、テキストウィンドウのイメージ画像を最初に10枚くらいピッタリ重ねておいて
クリックすると上から一枚づつ消えるようにしようと思いました。
ですが間違ってダブルクリックして一気に2枚消えてしまうのを防ぐために一枚消えたら0.5秒くらい操作不能のしたいです。
何秒後に実行Invokeというのは分かったのですが、何秒間操作不能というのは簡単に出来るでしょうか。
756
(1): 名前は開発中のものです。 [sage] 2020/03/06(金) 22:28:32.20 ID:VGelP9bX(1) AAS
>>755
クリックしたら透明パネルをオンに、invokeで0.5秒後にパネルをオフでいいんじゃない
757: 755 [sage] 2020/03/06(金) 22:34:17.15 ID:1ULsHRya(2/2) AAS
>>756
なるほど、それなら自分でも出来そうです。
どうも有難うございます!
758: 名前は開発中のものです。 [sage] 2020/03/07(土) 08:40:43.47 ID:5EioThaq(1/2) AAS
自分ならもう少し頑張ってプログラム勉強しながら作るけどな…
そのまま続けたらいつか破綻しそうだけど
759: 名前は開発中のものです。 [sage] 2020/03/07(土) 08:57:31.84 ID:Uss2F5S3(1) AAS
ていうかこれいわゆる「テキストが画像」な状態なのでは
もがく方向性はそれでいいのか…?
760: 名前は開発中のものです。 [sage] 2020/03/07(土) 09:12:49.28 ID:+zNTitoa(1) AAS
自分も初心者だけどパネルのオンオフとかロジックの考え方とか練習として無駄になるわけじゃないのでとりあえず動く物を作るのは良いと思います。
こうした方が良かったなって作り直す時に成長を実感するしいきなり大作作るわけでも無いので。

というよりプログラムの習得ってその繰り返しでは無いでしょうか・・・。
761: 名前は開発中のものです。 [] 2020/03/07(土) 10:27:27.18 ID:6+Dk7f8n(1) AAS
>>755
まあ一度やってみればいいと思うけど、テキストを画像にして切り替えはまあ悪手だと思う
762: 名前は開発中のものです。 [sage] 2020/03/07(土) 13:06:11.17 ID:5EioThaq(2/2) AAS
頑張る、回避する方向性が正しいのかを見極めるのもセンスだと思う
763: 名前は開発中のものです。 [sage] 2020/03/07(土) 13:22:54.89 ID:rwQlodPt(1) AAS
本人の意向に沿ったアド。
764: 名前は開発中のものです。 [sage] 2020/03/07(土) 14:41:05.25 ID:WpOmTZAt(1) AAS
フォントのライセンス回避には良い施策かも

再配布できるフォントは限られてるし
765: 名前は開発中のものです。 [] 2020/03/07(土) 20:44:01.16 ID:j6C8KDrh(1) AAS
UnityからBlenderファイルを直接読み込むと、アニメーションが読み込まれません。
これを読み込める様にするにはどの様にすればよいでしょうか?
Windowsの場合、こちら(外部リンク:gomafrontier.com)に解決策が載っていますが、Macでのやり方が分らず、困っています。
ご存知の方いらっしゃいましたら、教えて頂けると助かります。
宜しくお願い致します。
766
(1): 名前は開発中のものです。 [sage] 2020/03/07(土) 22:23:29.89 ID:y+xObmvy(1) AAS
Unity2018 Blender2.81を使用しています

Blenderで人型のモデルを作り、アニメーションを付けたFBXファイルをUnityへ取り込みました
アニメーションに追従させるため、武器をもつ方の手のボーンにコライダをつけて攻撃時の当たり判定に利用しようとしたのですが
恐ろしく大きなコライダができてしまいました

手のボーンのオブジェクトをダブルクリックするとモデルが見えなくなるほど画面が一気に引きます
他のボーンでも同じようになります
おそらくUnityに取り込んだボーンのサイズがおかしくなっているのだと思われます
しかし、プレハブ上でボーンを確認してもトランスフォームの値がおかしくなっているようには見えません

関係あるのかどうかは分からないのですが、パーツを分けて人型のモデルを作成しており、
各パーツはBlender上ではボーンの下にあるのですが、Unity上ではルートの直下に配置されています
これらのオブジェクトを確認した所、スケールの値がX,Y,Zすべて100になっていました

・Blender上でオブジェクトに「適用→全トランスフォーム」をする
・Blender上でExport時に「トランスフォーム適用」をチェックする(各パーツのスケールが1にはなったがボーンのサイズは相変わらずの様子)
・Blender上で単位の設定を「メートル法」にする、もしくは「なし」にする

いずれも試しましたがボーンのサイズは相変わらずのようで恐ろしく大きなコライダができてしまいます

どのようにすればよいでしょうか?
767
(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 08:17:24.61 ID:yu7/7LHp(1/2) AAS
>>766
Unity側でFBXの読み込みスケールを確認した?
基本は100に設定されてる、FBXごとに設定出来るけども
768
(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 08:49:58.24 ID:0zTqE3kf(1) AAS
>>767
Unity側でのFBXの読み込みスケールの確認とはどこでできるのでしょうか?
一応インポートしたFBXファイルのModelタブを確認するとスケールファクターは1になっています
769
(1): タワー ◆j2ZL4YtpzY [] 2020/03/08(日) 11:44:49.91 ID:FIQBCa1I(1) AAS
先生方質問でふ!
2Dで画像にcollider付けてボタンとして使ってるんですがたまにタップしても効かない時があります
常に効かない訳ではなく、同様の場面で効く時、効かない時があります

Unity上で一時停止してcolliderを一旦オフにしてからオンに切り替える事で作動したのでスクリプト上で切り替えを行う様にしましたが改善出来ませんでした

同じく一時停止してtransformのxyを体感出来ない値で修正したら作動したのでスクリプト上で…同じく改善出来ませんでした

経験のある方…何かピンと来た方居られませんでしょうか?
770
(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 13:19:11.62 ID:yu7/7LHp(2/2) AAS
>>768
そこで良いけど
基本的にUnity側はデフォルトのままで出力側でスケール管理する方が楽だと
ちなみにエディターをスクリプトで拡張したらインポートの大きさやらを色々と自動化できる

Blenderの事は詳しく無いけど、テストで骨適当に入れたモデルをFBXで書き出して試したら?
それがまともなら書き出しや読み込み設定は正しくて、キャラの骨側が問題だって明確になるよ

キャラクターみたいに複雑な物をいきなりやる前にテストパターンで最低限を理解してからじゃなきゃ地獄見るよ
最悪リグ再構築とかあるから
771
(1): 弟子 [] 2020/03/08(日) 15:49:41.90 ID:u0wg0OZ9(1/5) AAS
>>769
canvas使ってるならソートオーダー関連か、複数なら順番かなと

使ってないとなると、何か透明なのが上にのってるとか?
772
(1): 弟子 [] 2020/03/08(日) 15:54:59.32 ID:u0wg0OZ9(2/5) AAS
ちょいググったら、コライダーによるイベントシステムのタップ(クリック)は重なってるととれないとか?あるっ歩い
レイ飛ばしてるサンプルあったけどそんな感じかなあ
773
(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 16:38:14.67 ID:+9Yp1l0D(1/4) AAS
Instantiateでプレハブから複数生成したオブジェクトを
ランダムに一つずつ選んで破壊するのはどうすればいいんでしょうか?
774: 名前は開発中のものです。 [sage] 2020/03/08(日) 16:56:51.59 ID:xMgGiSpz(1) AAS
ランダムに選択して、デストロイすればいいよ。
775
(1): 弟子 [] 2020/03/08(日) 17:04:39.10 ID:u0wg0OZ9(3/5) AAS
>>773
instantiate はgame object を返してくれるのですよ
なので返しを配列に入れれば、配列からランダムに取り出して操作が出来るのよ
776
(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 17:40:35.63 ID:+9Yp1l0D(2/4) AAS
>>775
いろいろ試してはいるのですがなんかエラー出ますm(__)m
そもそも生成自体ちゃんとできてないみたいです
どのように記述すればいいのでしょうか・・・?

public class sousa : MonoBehaviour
{
public GameObject obj; // インスペクターでプレハブ接続済み
public GameObject [] go=new GameObject[5];

// Start is called before the first frame update
void Start()
{
for (int i = 0; i <= 5; i++)  // オブジェクト複数生成
{
go[i] = Instantiate(obj);
go[i].transform.position = new Vector3(i, 0, 0);
}
}

// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0)) //マウスクリックでランダム選択
{
Destroy(go[Random.Range(0,5)]);
}
}
}
1-
あと 226 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.016s