[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/19 18:54 / Filesize : 311 KB / Number-of Response : 1015
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【3Dゲームエンジン】Unity質問スレッド24



1 名前:名前は開発中のものです。 [2016/05/02(月) 22:38:08.79 ID:EnZTTc62.net]
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#といった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

次スレは>>970を踏んだ方が建てること。ダメなら>>980>>990が建てて下さい。

■本スレ
【3Dゲームエンジン】Unity総合スレッド27 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/gamedev/1441891966/

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
unity3d.com/jp
・ユーザーガイド
 docs.unity3d.com/ja/current/Manual/UnityManualRestructured.html
・チュートリアル
 unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 unity3d.com/jp/unity/faq
・MSDN
 msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

前スレ
【3Dゲームエンジン】Unity質問スレッド23
echo.2ch.net/test/read.cgi/gamedev/1457424481/

400 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 13:01:41.96 ID:ZpDfvZPR.net]
Rigid Snake

401 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 15:12:26.75 ID:DzDIFYv6.net]
3Dで1000以上の弾幕を扱うとき他の言語なら全弾ループさせて8分木で当たり判定を行ってるんだが
UnityではコンポーネントのRigidbodyとColliderでTrigger拾っても同じような低負荷の動きしてくれるんだろうか?

402 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 16:07:14.48 ID:crYLp3Kw.net]
>>396
当たり判定以前の問題として弾幕シューティングに物理演算が必要なのかを考えるべきじゃないかね?

必要のない物理演算を1000以上も行ってりゃ当たり判定以前の問題として重くなるのは自明だろう
1000以上の弾が全て物理演算で跳ねまわってるなら…まあ頑張れとしか言えんわ

403 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 16:26:24.83 ID:GrYRZPI3.net]
unityを勉強し始めた者なので、unityの勉強の仕方について質問があるのですが
unityの本やどこかのサイトにのっているソースコードをそのまま入力したのに動かないといったことで
とても悩んだ時期はみんなにはなかったでしょうか?

ありましたら、どのようにそれを乗り越えたか教えていただけないでしょうか。

404 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 16:32:45.96 ID:k08iYygc.net]
>>398
俺はコピペそのものをやめた

コピペするにしても、ちゃんと理解した上でないと、結局は細かいところ弄りたくなったときに困る。
おまけにそのコピペの仕様に他の部分も合わせなきゃいけなくなったりすると余計にワケわからなくなったりする。
だから、最終的には同じものになるにしてもコピペじゃなくてソースを見ながら自分で打ち込む方がいいと思う。

405 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 16:33:40.02 ID:MMYVuKCP.net]
>>398
Unityの場合はバージョンで動作が大きく異なるとかあるから
古い参考書は使えない場合もあるよ
古いってのは3ヶ月以上前とか

動かないのは、悩んで調べまくるしか無い
調べる行為、自分で解決する力が、すなわちプログラマの技量と言ってもいい

そのまま入力して何がどうなってるかわからんってのは
単純におまいのレベルが足りてない
そのサンプルはまだ早い
もっと簡単な別のサンプルを見つけて勉強すべき
一番確実なのは公式

まずこれやれ
tutorial.unity3d.jp/

406 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 16:44:25.36 ID:xKUVOT6G.net]
チュートリアルやるの面倒くさいしC#覚えたくもないこのスレの住人には
本にあわせた古いUnityのバージョンでやれって言う
どうせそんなアホみたいな事を聞くのはそのままコピペして貼りあわせて動かすことしか出来ない連中なんだから

407 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 16:48:49.60 ID:qRF1nlwK.net]
>>398
普通に言語ができてりゃエラーコード見て解決可能
言語ができないとすぐそうなる
真面目に一からちゃんと言語やることだよ
Unityに捕らわれないスキルだし損になることも絶対にない
もっといえば高校までの数学と英語だ。

408 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 16:58:16.24 ID:DzDIFYv6.net]
>>397
isTriggerって分かるか?
分からないならちょっと黙ってろよ
Rigidbody=物理演算と思い込んでる馬鹿には理解出来ない話だから



409 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 16:59:19.39 ID:MMYVuKCP.net]
でも弾幕シューティングは座標管理すると思うよ普通

410 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 17:00:35.49 ID:xKUVOT6G.net]
一番Unity知らないお前が言うなよ
それこそチュートリアルやってUnityの基礎を調べてから出なおしてこい

411 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 17:01:25.94 ID:xKUVOT6G.net]
>>405>>403宛な

412 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 17:10:14.33 ID:WpXNRJDO.net]
>他の言語なら全弾ループさせて8分木で当たり判定を行ってるんだが

Unity質問スレでこんなアホな事言ってる時点でお察し
おまえらスルー力無さ過ぎ

413 名前:名前は開発中のものです。 [2016/05/16(月) 17:28:57.07 ID:BdnXokXi.net]
貯金1,000万円つかって、6年で20アプリつくったが、年収は15万円。
どん底アプリ開発者、コンテストで賞金250万円を獲得し、人生初勝利をおさめる。
appmarketinglabo.net/iyodasan/

414 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 17:50:48.90 ID:qRF1nlwK.net]
>>403
実際Unityが物理エンジンをどういう形で最適化しているかはUnity社に聞くほかないが
普通に考えつくようなことは大体行われていると考えていいだろうとは思う。
実際のUnityでの衝突判定負荷がある程度察せられるチュートリアルはある
https://unity3d.com/jp/learn/tutorials/modules/intermediate/physics/physics-best-practices
これでは1000個の赤オブジェクト、1000個の緑オブジェクトを
それぞれの色同士だけで判定させた場合とまとめて判定させた場合の
パフォーマンスの結果が書かれていて前者では物理演算にかかる時間は
平均で17.6msとなっている。60fpsはでていない。後者だと平均27.7ms。
どんなCPU使ってるのかわからんがそれでもかなり最適化されているとは察せられる。
弾幕の場合は1000個の弾同士の判定などしない訳で問題視するようなレベルではないだろう。
まぁ適当に1000個でデモしてみればいい訳ではあるが。
そんなに時間もかからない。正直このレスの方が時間かかっているかもしれないw

あと心配なら自前で衝突書いた方がいいっていう>>397の指摘はそれほど的外れではないよ。
かなり力技だがUnite2016で物理挙動まで自作するなんて講演もあった
まぁそこを自作することが焦点の講演ではないが。
japan.unity3d.com/unite/unite2016/files/DAY1_1700_room1_Yasuhara.pdf
これはかなり面白い話なので見ておいて損はないと思う。

415 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 17:59:21.19 ID:sGCwQia1.net]
シミュレーションじゃなくてゲームなんだからさ
当たり判定とかRaycastでいいだろ
弾幕とかエフェクトでやれよ と言ってみる

416 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 18:46:34.22 ID:DzDIFYv6.net]
>>409d
読んだ感じ座標の最適化はしていても外から絞り込める仕様にはなっていないっぽいな
1000の弾幕が張られていてもPlayer×Bullet(同座標)で毎フレーム1×10通りの判定まで落とし込むような実装は自前で書くしかないと

417 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 18:56:59.55 ID:qRF1nlwK.net]
>>411
あ〜、そうだね、基本的にUnityはソースコードまでは開示してないし
物理エンジンはかなり閉じた構造になってる。
この機能要らね〜この機能ほしい、と思っても切ったり足したりはできない。
その辺までやりたいならUE4とかの方がいいよ。
あれなら全部中身見て変更もできる。

418 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 19:04:58.42 ID:NRL4D3Jt.net]
もうそこらへんブラックボックスってことで理解することを放棄してる



419 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 19:08:31.60 ID:sGCwQia1.net]
心配しなくても偉そうに語ってる奴もみんな机上の知識さ
そもそも成功してる奴はこんなスレに来ない

420 名前:名前は開発中のものです。 [2016/05/16(月) 19:33:15.08 ID:vHjLOzcJ.net]
質問です。
EditorWindowで常に最前面に描画され続けるウィンドウを作りたくて以下のプログラム

public class GUIEditorWindow : EditorWindow {
[MenuItem(

421 名前:名前は開発中のものです。 [2016/05/16(月) 19:34:45.41 ID:vHjLOzcJ.net]
何故に切れた……

質問です。
EditorWindowで常に最前面に描画され続けるウィンドウを作りたくて以下のプログラム

public class GUIEditorWindow : EditorWindow {
[MenuItem("Window/TestEditor")]
public static void CreateEditorWindow() {
var instance = CreateInstance<GUIEditorWindow>();
instance.ShowUtility();
}
}

を書いたのですが、GameビューやSceneビューの裏側に回り込んでしまいます。
何が問題なのでしょうか。Window8のPCを使っています。
Unity のバージョンは Virsion 5.2.1p4 です。
お願いします!

422 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 19:50:40.14 ID:qRF1nlwK.net]
>>416
何でだろう、と思って試してみたがWin10Unity5.3.4では再現しなかった。
報告まで。

423 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 20:20:56.22 ID:gXHmphDY.net]
>>396
空間分割法を使えば?

あらかじめ、100エリアとかに分けておけば、
隣接しないエリア同士なら、衝突判定しなくてもいい

たぶん、Unityも、そうしているのじゃ?

424 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 20:40:48.12 ID:NRL4D3Jt.net]
それってつまり4分木8分木とやってること大体一緒やん

425 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 22:14:22.29 ID:crYLp3Kw.net]
昔ながらの当たり判定使って単純に弾側のUpdate内総当たりで比較してみた
こんなテキトーでもRigidbody+SphereCollider使うより明らかに速いんだが?

var Awake(){
Player player=GameObject.FindGameObjectWithTag("Player");
//弾丸生成時にプレイヤーの参照を取る
}

void Update(){
//弾丸の移動処理はこの辺でテキトーに
if((player.transform.position-this.transform.position).sqrMagnitude<=(当たりと判定する距離の2乗)){
//当たった
}
}

使っていない様に見えてもRigidbodyが裏でやってる計算量はUpdateで総当たり判定するよりはるかに多いぞとw

426 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 22:18:39.85 ID:crYLp3Kw.net]
あ、ミス発見
player変数の宣言はUpdateの外でやってくれ

427 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 22:22:38.34 ID:crYLp3Kw.net]
うーむ、ミスだらけやな
誤)var Awake()
正)void Awake()
そして>>421はAwakeの外でが正しい

スマホでソース入力とかするもんじゃないな、すまんw

428 名前:397 mailto:sage [2016/05/16(月) 23:02:37.03 ID:DAaItmnW.net]
皆さん返信ありがとうございます。

>>400
3か月前の参考書ですら使えない場合もあるんですか?
てっきりunity5の参考書を買えばまず大丈夫だと思っていました。
チュートリアルやってみます。

それにしても、unityの起動やビルドにものすごい時間がかかるのだが、
俺のノートPCのスペックが足りないのかな。



429 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 23:07:42.72 ID:NRL4D3Jt.net]
まぁその方法だと球が1000個あった場合に計算回数がたった1000回になるだけだし
本当に総当たりしたら50万回くらいになってるし

430 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 23:30:16.88 ID:NRL4D3Jt.net]
あとRigidbodyの当たり判定はFixedUpdateの間隔で処理してるハズだけど、その方法だとUpdateの間隔でしか処理してないやん
当たり判定の検出回数減ってるやん

431 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 00:08:50.61 ID:RFqvbH97.net]
>>424>>425
弾幕シューティングで弾同士に当たり判定を持つのか?
設計の段階でいらん枝を先に切るってのは当然やってるものだと思ったがまさか言葉通りの総当たりを想定してたのかwそりゃ論外だから設計見直せとしか

Rigidbody使ってもレイヤー切って弾同士の判定はしないで比較してるからそこで差は埋まらんよ?
Updateでやってる処理をFixedUpdateに移したぐらいで結果が変わる程度の差じゃないから粒度が気になるなら移せばいいよ

432 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 00:19:47.34 ID:c7Es4G1U.net]
>弾幕シューティングで弾同士に当たり判定を持つのか?

いやいや別にあってもおかしくないが
>>420見ただけじゃ仮定が不明すぎてわけわかんないのに、「当然やってるものだと思った」と言われても自分テレパシーじゃないんで

433 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 00:30:16.61 ID:Z2ucCY2C.net]
うえいるせ
雌の部分みせろ

434 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 00:33:37.46 ID:kSn04VNU.net]
俺のESP値は54万だ

435 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 07:06:13.78 ID:30PsNdMs.net]
シューティングで弾同士があたり判定を持つってどんな感じなんだろう・・・?
味方同士の弾が当たったら1発に集束されて威力合算とか
敵と味方の弾当たったら相殺とか、敵と敵の弾が当たったら別の弾種になるとか
そんな感じの事をやる時に必要になってくるんだろうか・・・?

436 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 08:57:23.39 ID:Z8urgFF3.net]
人間は壁にぶち当たる。
その時に否が応でもやらなければいけないものさ。

437 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 11:00:14.89 ID:HRkpY7dw.net]
日本語で書かれたUnityの解説本はさあ、「なぞれば同じゲームが作れます」って言うような公式チュートリアル以下の初心者本ばっかりになったんだよな
公式チュートリアルが英語だからか、それが出来ない中学生〜専門学校生等の層をターゲットにしてるんだろう
まあ、一歩進んだ本は売れない上、さらにレビューには「使い方の説明がない」等のひどい評価が書かれるというとんでもない時代になってるからね
いい本を出そうって気はしないよな

438 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 11:11:45.22 ID:16YnhEn2.net]
突然どうした、疲れてんのか
ちょっと外に出て気分転換してこい



439 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 11:57:18.27 ID:eRbYndXk.net]
初級本「クリックしたままカーソルを移動させることを『ドラッグ』と言います。この標準で付いているスクリプトファイルをキューブのところにドラッグすれば、ほら動いた!」

中級本「GameObjectをnewしてInstanceをprivateなvariableにassignしたらGetComponentからRigidbodyをAddForceもしくはvelocityで、ほら動いた!」

ぶっちゃけこの中間の本を作れなかったのだろうかと初心者の頃は思ってたよ

440 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:06:48.83 ID:eRbYndXk.net]
正直なところ今でもクラスを細分化する理由とか分からないんだよなぁ
例えばプレイヤーとカメラの操作みたいな相互に作用するものは分けて書くと逆に可読性が落ちるし
それぞれにスクリプト当ててそれぞれでお互いの参照を保持するのは無駄にしか思えない

441 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:10:48.38 ID:unjj9Zl5.net]
2chでひとり語りを始める人は軽度のうつ病の恐れがあるってエロいお医者さんが言ってた

442 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:38:06.79 ID:RJ0HcG3P.net]
>>435
チームで開発するときは、ファイル分けてくれた方が問題の箇所を見つけやすいってのはあるかも

443 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:40:59.06 ID:FLvMyiRD.net]
>>435
雑談は雑談スレでやれよw
それ自体はもっと大規模なゲーム作ってけば分かるようになるよ
最終的にはオブジェクト指向は正しいのかとかいう宗教戦争になるw

444 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:52:13.06 ID:qP+ihOpu.net]
お前らチームで開発なんてしてるの?

445 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:54:50.07 ID:m1vuMDHT.net]
>>435のようなレスを見るとオブジェクト指向が理解できず苦労してんだなあと
コボルやフォートラン時代の頭の硬化したジジイたちは気の毒

446 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:58:54.84 ID:Eq74oSJq.net]
俺は434に同意するけどね
無駄なコードが多すぎる
さして読みやすくなってるわけでもないのに

447 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 13:42:07.71 ID:T9Vr550j.net]
クラス同士が密結合していると、状態の組み合わせ爆発が起こる。
もし変数が10個あれば、10!

これが2つのクラスで、疎結合になれば、
例えば、3! * 7! のように、状態の組み合わせ数が減る

448 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 13:53:54.12 ID:qMLet7/6.net]
openbook4.me/projects/161/sections/1023

こちらのサイトを見ながらブロック崩しを作成しているのですが
「BallScriptを作成して記述」の所をそのまんま記入したところ、コンパイルエラーが発生してしまいます。
エラーの内容は以下の通りです。
Assets/BallScript.js(9,42): BCE0144: 'UnityEngine.Component.rigidbody' is obsolete. Property rigidbody has been deprecated. Use
GetComponent<Rigidbody>() instead. (UnityUpgradable)

Assets/BallScript.js(9,52): BCE0019: 'velocity' is not a member of 'UnityEngine.Component'.

Assets/BallScript.js(10,9): BCE0144: 'UnityEngine.Component.rigidbody' is obsolete. Property rigidbody has been deprecated. Use
GetComponent<Rigidbody>() instead. (UnityUpgradable)

Assets/BallScript.js(10,19): BCE0019: 'AddForce' is not a member of 'UnityEngine.Component'.

ちなみに自分が入力したソースコードは以下の通りです。
#pragma strict
var Speed : float = 15.0;

function Start () {

}

function Update () {
if (Input.GetButtonUp("Jump") && rigidbody.velocity == Vector3(0, 0, 0)){
rigidbody.AddForce((transform.forward + transform.right) * Speed, ForceMode.VelocityChange);
}

}
エラーコード番号や英文をググったりしましたがわかりませんでした。どなたか教えていただけないでしょうか。



449 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:01:32.32 ID:gPw3orDt.net]
おぶそれーと?(読めない) って出てるでしょ
エラーメッセージちゃんと読めば、これはすぐわかる

450 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:10:25.54 ID:xuPMAP+N.net]
>>440
一人で作る日曜DIYなのに、
「ここは木材を切る場所」
「ここは木材を削る場所」
「ここは組み立てる場所」
と工程別にライン化してたらアホかと思うがな

451 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:24:13.05 ID:qMLet7/6.net]
>>444
ありがとうございます。恥ずかしながら、エラーコードの英文が読めない時は翻訳を使うとわかることもあるということに質問してから気づきました。
一番上の意味はrigidbodyは廃れてしまい、使われていない。代わりにこれを使えと言っていることがなんとなくわかりましたが、具体的にどう書き換えたらいいかがわかりませんでした。

またもう一つのエラーとしてvelocityはunityコンポーネントのメンバーではありませんといったことが書いてあるのはわかりましたが、具体的にどのように直せばいいのかわかりませんでした。

どなたか教えていただけないでしょうか。

また、今後unityでスクリプトを触る上でこれからも様々な種類のエラーが出ると思うのですが
これらをどのように乗り越えていけばいいのでしょうか。
スクリプトのコンパイルエラーの対処法として、自分にできることは、エラー番号、エラーメッセージをそのままググる。
翻訳で日本語に置き換えて考えてみるといった方法を試しているのですが
それでもわからずここで質問することになってしまいました。
わからないことを掲示板等で極力聞かずに自分でコンパイルエラーを解決する方法としてもっとよい学習方法はあるのでしょうか。

452 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:34:37.72 ID:FLvMyiRD.net]
>>443

function Update () {
if (Input.GetButtonUp("Jump") && GetComponent("Rigidbody").velocity == Vector3(0, 0, 0)){
GetComponent("Rigidbody").AddForce((transform.forward + transform.right) * Speed, ForceMode.VelocityChange);
}

UnityEngine.Component.rigidbody' is obsolete. Property rigidbody has been deprecated. Use GetComponent<Rigidbody>() instead.
UnityEngine.Component.rigidbody は廃止されました。リジッドボディプロパティは非推奨です。代わりにGetComponent<Rigidbody>()を使用してください
docs.unity3d.com/jp/current/ScriptReference/GameObject.GetComponent.html

'velocity' is not a member of 'UnityEngine.Component'.
velocityはUnityEngine.Componentのメンバではありません
'AddForce' is not a member of 'UnityEngine.Component'.
AddForceはUnityEngine.Componentのメンバではありません。
docs.unity3d.com/jp/current/ScriptReference/Rigidbody.html
docs.unity3d.com/jp/current/ScriptReference/Rigidbody-velocity.html
docs.unity3d.com/jp/current/ScriptReference/Rigidbody.AddForce.html

この辺の意味が分からないなら延々「コピペすれば動くコードをよこせ」と言わねばならなくなる。
Unityはプログラムできることは必須でUnityだけ覚えるとかいう道は基本的にないよ。

453 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:38:47.11 ID:swIfBpnI.net]
つか何でわざわざ公式じゃないよくわからんサイト探してunityjavaとかで始めるんだよ
せっかくまっさらなんだから公式でC#でやれよ
動画見ながらそのまま打てば確実に動くぞ、英語なんて解らなくても動画の通りやればいい
unity3d.com/jp/learn/tutorials/modules/beginner/live-training-archive/creating-a-breakout-game?playlist=17219

454 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:53:28.53 ID:qMLet7/6.net]
>>447
>>448

ありがとうございます。
過去にunity公式のチュートリアルは英語なので、英語が聞き取れない人にはあまりお勧めできないと書かれたサイトがあったので
unityチュートリアルは躊躇していたのですが、これからやってみようと思います。
つい先ほど日本語字幕への変更の方法もわかったことだし。

プログラミングができることが必須ということはC#やJavascriptの参考書は今後必要になるのかな。

455 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:55:11.49 ID:FLvMyiRD.net]
色々あったけど結局もうスクリプトはC#でやるのが正解ってことだよなぁ。
エラーコードもGetComponent<T>()で出てくるんじゃC#しか考えてないってことじゃんって話になるし。
まぁC#ちゃんとやることだよ。他に道はない。
猫でもわかるの本に書いてある程度のことが全部頭に入ってればそれで十分だし

456 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 15:29:19.21 ID:RFqvbH97.net]
>>446
とりあえずUnityScript(javascriptのような別物)はあまりお勧め出来ないのでC#を使うようにするといいと思うよ

Obsolateは過去のバージョンでは存在したが古く不適切な実装やより優れた同等品の追加などによってなくす方向にシフトしたものにつけられるアトリビュート
今回の場合は、バージョン4.xの頃には存在したが内部的にGetComponentを使っていたプロパティ群がまとめて廃止された経緯があるんよ
GetComponentは重いから暗黙的に多用してしまう事を助長するのは良くないってのが廃止の理由

velocityやAddForce絡みのエラーはrigidbodyの取得時に明示的にキャストすれば大丈夫
ただまあ前述のobsolateにされた経緯の通り毎回GetComponentを呼ぶのはよろしくない、Awakeで一回だけGetComponentしてRigidBody型の変数にっっこんでおくのがいいと思う

ついでに言えばそのクラスで特定のコンポーネントが必須ならRequireComponentアトリビュートをつけておくことをお勧めしとく

まあとりあえずやる気になったみたいだしチュートリアル頑張れ

457 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 15:58:10.94 ID:gPw3orDt.net]
>>446
代わりにこれを使えの、これの公式マニュアル読むといいよ
というかそれしかない

458 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 17:43:18.14 ID:gPw3orDt.net]
Unityって扱いやすいんだろうけど、
情報の錯綜っぷりとか
それに輪をかけるアップデートの頻繁さとか
状況が入門者向きじゃないよね…
悪い意味で枯れてないというか。
いい点でもあるんだけど



459 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 19:31:45.71 ID:MHr1tVrA.net]
Unityについて語れるのは
Unityで作品を完成させた者のみ
語るものは知らず
知るものは語らず

460 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 19:51:35.70 ID:JSGpve5o.net]
上級者ぶる為にわざと難解な書き方してブログに載せる素人プログラマが多い印象

461 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 20:07:07.92 ID:pGNa23Ii.net]
Unity5にて…
角度の違うCubeを二つ用意して接触した状態にして、その接点に向かってSphereを落とした時、
跳ね返ったSphereの軌跡が二つに分かれるのですが、ひとつにする方法はないでしょうか?

データを取ると、どちらのCubeが先に衝突判定処理を通ったか、で変わっているように見られるので、
同時に衝突した場合用の優先度があれば、可能なのでは…と考えていますが、そのようなパラメータはあるのでしょうか?
もしくは、他に方法があれば、ご教示頂けると助かります…。

462 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 20:32:05.24 ID:FLvMyiRD.net]
>>456
同時の衝突はないからそうなる訳で同時に衝突した場合の、という方法はない。

すごい限定された対策だがSphereを落とすときに
Physics.IgnoreCollision(sphereCollider,cube2Collider);
とでもしておいてOnCollisionEnter()で
Physics.IgnoreCollision(sphereCollider,cube2Collider,false);
とかする。
.docs.unity3d.com/ja/current/ScriptReference/Physics.IgnoreCollision.html

あと見た目は二つのCubeが同じように配されているがコライダーは見た目とずれていて
どちらかが上になっている、とかかな。
これはSphereの落ちる速度によっては意味ないかもしれない。

463 名前:455 mailto:sage [2016/05/17(火) 20:56:39.07 ID:pGNa23Ii.net]
>>457
回答ありがとうございます。

>同時の衝突はないからそうなる訳で同時に衝突した場合の、という方法はない。

確かに同時に衝突という書き方は誤認される書き方でした。すいません。
パラメータとしてはないようなので、他の方法を考えてみます。

>限定的された対策

この方法も一つの案として、参考にさせて頂きます。
ありがとうございました。

464 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 23:23:59.89 ID:kSn04VNU.net]
全然別の物体に切り替えるか速度を望みの動作に強制設定とか?

465 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 01:49:51.51 ID:IxPQ81Oz.net]
何言ってるか分からないけど親子関係を
動的に作ればいいとか適当なこと言ってみる

466 名前:名前は開発中のものです。 [2016/05/18(水) 10:45:50.23 ID:/bN/mExs.net]
すまぬがプログラム板のC#スレで反応がなかったんで教えて欲しいだけどさあ
iOSでLINQを使った際、使えない機能一覧ってどっかにまとまってないかな?

467 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 16:02:45.09 ID:uzG6k9QN.net]
>>461
qiita.com/RyotaMurohoshi/items/6fb02e50d9e08b487f47
この辺

iOS csharp LINQ でググればいくらでもでてくる、ここで大事なのはC#だと当たりを引けないcsharpって書くのが大事。

468 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 16:16:28.70 ID:aFm3BHdm.net]
>>461
Unity iOSでLINQを使うと実行時にコケるってのはAOTコンパイラが古いMonoを使ってたのが原因で
IL2CPPに切り替わってからはこの手のエラーはほぼ出なくなったと思うんだが?

もし実行時にコケるならビルド設定でMonoが選択されていないか確認、選択されていたらIL2CPPに変更して試してみてくれ



469 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 16:42:24.84 ID:1q5c9kCV.net]
座標系の計算で勉強になるサイトとかどこかに無いもんですかね
二つの位置からベクトル取って距離やら角度やら計算して動きに反映させる一連の流れを知りたい

470 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 17:04:11.09 ID:qQqol+Oq.net]
www.sousakuba.com/Programming/

471 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 17:09:10.16 ID:1q5c9kCV.net]
>>465
ありがとうございまする

472 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 11:27:39.89 ID:JapTkgvt.net]
Unity5で
@AB
A B C
D E F
って感じに表示して@が空欄の状態でAを押すと@がAに変わるみたいにして
パーティ選択的なことをしたいんだけどどうすればいい?

○の方の画像を入力した数字に応じて変化させるってのはできたんだけどAから○への数字の受け渡しがどうすればいいのかわからない…

473 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 11:44:52.80 ID:w/5fouEY.net]
>>467
せめて自分の書いてるコードを書けよw
画像を変化させるってことは何かの情報を「どこか」に受け渡してその画像を変化させてる訳だ。
その「どこか」に数字を受け渡せばいいってだけだろ。
あるいは「別のどこか」に数字を受け渡せばいいんだろ。
何の違いがあるんだ?

474 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 12:36:01.44 ID:JapTkgvt.net]
>>468
Aのボタンに
check = 0;
for (int i = 0; i < 3; i++) { //重複してたら6(空白状態の画像)にする
if (choice[i] == 0) {
choice[i] = 6;
check = 1;
break; } }
if (check == 0){       //重複がなければ空白の場所に0を入れる
for(int i = 0; i < 3; i++) {
if (choice[i] > 5) {
choice[i] = 0;
break; } } }
Choice0.SendMessage("choice0", choice[0]); }
@に
SpriteRenderer sr;

public Sprite[] c0;


void Start() {
sr = GetComponent<SpriteRenderer>(); }


public void Choice0(int choice0) {
sr.sprite = c0[choice0]; }

改行制限引っかかりそうだから{}のとこの改行はいじったけどこんな感じ

475 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 13:38:22.62 ID:HwpKTbFM.net]
ここスプライト変換は以前やったけど、ググれば出るぞ・・・

476 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 13:50:32.91 ID:w/5fouEY.net]
>>469
それだけ書ければ普通にわかりそうなもんだがなw

これはchoice[]はstaticになっててボタンBだと
if(choice[i]==1)とかなる訳?だな?

このメンバーが選ばれた、ということを@もしくはABに
送りたいということであればボタン側に
public GameObject[] thumnailObjs
とかしておいてそこにインスペクター上で@ABをD&Dしておいて
thumbailObjs[i].SendMessage("choice0", choice[0]);
とかやってやればいい。

477 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 13:52:25.98 ID:w/5fouEY.net]
うわあ、適当に書いたから誤字しまくりだよw
thumnailObjsとthumbailObjsはthumbnailObjsねw

478 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 16:08:56.10 ID:DrGbRApl.net]
デジャブの気がすんだけどどこぞの専門学校の宿題?



479 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 21:22:54.21 ID:JapTkgvt.net]
>>471
そう、ボタンBでは1とかになってる
上手くいかないから画像の表示がおかしいのか数値の受け渡しがうまくいってないのか調べてみたら数値の受け渡しがうまくいってないっぽいわ


>>473
俺は専門学校でも何でもないど素人が趣味で作ってみてるだけだよ
というか専門学校だったらきっと聞かなくてもできるはずなんだ…

480 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 21:30:53.08 ID:w/5fouEY.net]
>>474
あj〜数値の受け渡しがうまくいかないっていうのは
Choice0.SendMessage("choice0", choice[0]);
の部分がうまくいってないってことか?

もし本当にこれがソースのままだったら上手くいかないのは当然で
少なくとも
Choice0.SendMessage("Choice0", choice[0]);
でなければならない。
Choice0.SendMessageのChoice0イコール@のオブジェクトでなければならない、
ということが理解できていないならむしろそこが原因だともいえる。

481 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 22:52:03.99 ID:JapTkgvt.net]
>>475
そこか…
そこ直したら普通にできたわありがとう

482 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 23:58:38.62 ID:6QWM6BfZ.net]
アセットについて質問です。
エフェクト用の素材が欲しく、アセットでフリーで落とせる物を落としてこようと思うのですが、このエフェクトを使用する際に注意や守らないといけないことなどございますでしょうか。
スマホ用ゲームを作っていて完成したら公開(課金も実装する予定です)するつもりなのですが、アセットの物をそのまま使うといけないとか、逆に手を入れるといけない(火のエフェクトを青くするなどの変更)などございますでしょうか。
注意事項等読みたいのですが大体英語で書いてあって理解が出来なく困っています・・・

アセットを組み込んだゲームを公開した後にアメリカなどから突然メールが来て「うちのエフェクト誰の許可取って使ってんだオラァ!200万払えや!アメリカの法廷来いやぁ!」などメールが来ないか怖くてアセットになかなか手を出せないでいます・・・
ご教示お願いします。

483 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 00:32:26.68 ID:Jza1z3qo.net]
メールは来るよ。金払うしかないから金を準備しとけばいい。それだけ

484 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 00:44:05.98 ID:Po/p686/.net]
むしろ課金ゲーだと供託金払えメール来そう

485 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 01:08:26.02 ID:368p0L/N.net]
まあ売れるようなゲームに仕上がる確率は宝くじに当たるより低いだろうから心配しなくておk
公開してもほとんど誰にも知られず消えてくだけさ・・・

486 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 02:42:58.93 ID:imTmdaD1.net]
>>477
ライセンスは基本は
改変複製不可、
コンパイル済みのものは逆コンパイル不可
ビルドしたものは配布OK
商用利用もOK
あたりの筈、なんだけどどれも個別規約がなければ、の話なんだよねw
だからもうライセンスは読むしかないよ。他に手段はない。
金儲けしようと思うんだったら準備にもカネかけるしかないよ。
翻訳のサービスはググればすぐ出てくるよ。
質は値段次第ということにはなると思うけど。
あと改変不可と言っても例えばトランスフォームの位置を一切変えてはいけない
とかはそれこそライセンスで明示されていない限りあり得ない訳で
インスペクターからアクセスできるデータ部分は
「変更されることが予定されている」
と思っていいと思う。まぁそれもライセンス次第ではあるけど。

487 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 08:53:01.23 ID:3aKDqwdr.net]
標準ライセンスって改変禁止だったのか

ローポリ化もソース改造も出来ないならもうエディタ拡張以外にアセットの使い道無いな

488 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 11:36:04.01 ID:9GkhEl9v.net]
ライセンスうんぬんの前に売れるゲームの一つも作れ



489 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 12:41:28.25 ID:Po/p686/.net]
言えてる
昨日一日Light Probes調べてて消費した
もう面倒だからLegacy Shaderでいいわ

490 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 14:21:09.38 ID:ucZAkPXT.net]
最新版インストールしようとするとネットワークから切断されて再試行って出てくるんだけどどうすればよろしいでしょうか
win10

491 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 18:59:05.23 ID:92qhpj6m.net]
モデルの形に沿ってきちんと当たり判定取る方法無いかな…
MeshCollderだと細かい部分が省かれて思った通りにいかない…

492 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 19:25:14.84 ID:imTmdaD1.net]
>>485
ネットワーク環境を見直す。
ただUnityはなんか昔からWeb関係は弱くてアセットストアにつながらねぇとか
落としたインストーラが壊れてるとか頻繁にあったので向こうの問題ならどうにもならないなw

>>486
自分で書くしかないね。
衝突判定処理の中身をちゃんと知れば恐らく今なぜ思った通りにいかないのかの理由もわかると思うよ。

493 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 19:58:38.82 ID:92qhpj6m.net]
わかりづらくて申し訳ないです
こういうことです
sssp://o.8ch.net/c3u6.png

494 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 20:57:55.85 ID:imTmdaD1.net]
>>488
MeshColliderをconvexにした場合そうなる。
convexというのは凸包という意味だ。
RigidBodyをつける場合にはこれにしなければならない。
なぜそういうことになるかというと凸包でない剛体のモーメント計算など
リアルタイムではやってられないからだ。
またメッシュコライダー同士の衝突も少なくとも片方は凸包にしなければならないのは
やはり計算が爆発的に増えるからだ。
MeshColliderの中身は推測するしかないが恐らく一面一面をコライダーとしている。
つまり100トライアングルのメッシュを使うということは100個コライダーをつけるということだ。
二つの100トライアングルメッシュ同士で衝突計算した場合1万回の衝突判定が行われることになる。

こういったことはリアルタイムゲームではやってられないので
そういうのは最初から無しにしようというのがUnityの仕様。

だからその事例でその形に判定をとりたかったら
Colliderに使うメッシュをあらかじめ凸包要素に分割した上で
複数のMeshColliderを使うくらいしか方法はない。
勿論Convexにしなくていい、という事情があればそれだけでもいい。

495 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 21:14:24.30 ID:92qhpj6m.net]
>>489
なるほど余計なチェック入れてたのが原因だったんですね!ありがとうございます!

496 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 22:10:05.81 ID:/E6CTDJa.net]
>>488
凹形状で困るというと歯車でも作ってるんかね?

Unityが採用しているPhysXエンジンはstaticでない凹(concave)な形状を扱わず、単純に凸(convex)形状に変換して演算するという仕様

convexにチェックを入れないとMeshCollider同士が衝突しなくなるので注意な

497 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 00:21:15.77 ID:o2apVCjl.net]
質問です。
パズドラを作るとしてシーンをまたいで情報がほしい下の2つを実装するとしてみなさんはどう実装しますか?

@.全てのシーンで必要な情報、情報量は少ない。
すべてのシーンで必ず読み込む
ex.ユーザー情報(ユーザー名、魔法石の数、パーティ構成モンスター番号など設定してあるもの)


A.特定のシーンで必要な情報で、情報量は多い。
この情報を読み込まないシーンも有る。
ex.モンスターの情報。
パーティ構成モンスター番号の参照先。
全てのモンスターの画像、ステータス、レベルごとの伸び幅、成長経験値テーブル、スキル、スキルエフェクト……などなど情報が多い。


最初のタイトル画面から@もAも専用のGameObjectを用意しておいて「DontDestroyOnLoad(this);」でシーンをまたいでも壊れないようにしてそこに情報の読み込み、更新をかけようと思っています。

色々なシーンで使う情報を作るのは初めてでどうしようか悩んでいます。

498 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 00:42:29.32 ID:SWXbsePJ.net]
それで行けそうならいいんじゃないか?
俺は異論はないぜ
組み方に答えは無いからな



499 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 00:54:07.23 ID:XIKl4tZh.net]
なぜググったほうがずっと情報豊富で即回答が得られるような質問をすんだろうかねえ
ひょっとして教えたい君に気を使ってるの?

500 名前:名前は開発中のものです。 [2016/05/21(土) 01:45:35.72 ID:OwBOct4Q.net]
>>494
上のような質問を的確にググるにはキーワード何さ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<311KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef