[過去ログ] UnityC#勉強してMMO作たいけどどうする!?4(^^ (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
277(1): ボッキングの弟子 ◆rZPPjYuxmQ [sage] 2018/01/31(水) 12:22:26.11 ID:4VwlB9Gi(1/5) AAS
>>271271(1): 名前は開発中のものです。 [sage] 2018/01/30(火) 16:29:26.00 ID:8Rdta5su(1) AAS
>>269
モノ作りは好きだけどずっと絵は苦手意識あったから
実はけっこう芸術面もいけてるんじゃないかと分かって嬉しいのよ
新キャラ登場ね
よりによってボッキングに弟子入りとはw
ボッキングは師匠としてちゃんと役割を果たすのだ!
いやいや押しかけ弟子したのでご迷惑かもしれないけど何もしなくても師匠と呼ばせてください
>>273新しいスレですが、自分そんなに続くかどうかも自信ないしこうやって他の人がやってるのを見ながらが楽しいのでここがいいかなと思ったんですが
お邪魔なら別スレ建ててみますが…
>>274SS見るたびにすごいなって思います、早く自分もそういうの作りたいです
いま画面にトライアングルオブジェクトを配置して、AD←→で移動できました
でも画面の外にいっちゃったりしますしfps考慮してないけど、とりあえず動くのは楽しいです
外部リンク:gyazo.com
279: ボッキングの弟子 ◆rZPPjYuxmQ [sage] 2018/01/31(水) 16:20:07.48 ID:4VwlB9Gi(2/5) AAS
>>278278(1): 名前は開発中のものです。 [sage] 2018/01/31(水) 14:36:06.42 ID:dELIuyee(2/2) AAS
>>277
移動範囲制限ならMathf.Clamp関数が便利だよ!
ってUnity歴4日目の人には難しいか
全くの素人ならなにかチュートリアルをやってみることをおすすめするよ!
といいつつチュートリアルのサイト見てみたら
当初目指してた形のランダムダンジョンのチュートリアルがあって笑った
レスありです
Mathf.Clamp調べてみます
Unity歴が短いけどプログラマ歴は昔やってたのでどうにかなりそうです
チュートリアルも見てますけど、なかなか頭に入ってこないです><
280(1): ボッキングの弟子 ◆rZPPjYuxmQ [sage] 2018/01/31(水) 16:50:35.39 ID:4VwlB9Gi(3/5) AAS
Mathf.Clamp調べてみました、範囲内の数値を返してくれるのですね
すごくありがたい関数です
ただ一つ問題というか、疑問なんですが、まず範囲内かどうか知るためには
画面の大きさを知らないとならないんです
で昔ならScreen.Widthとかで画面の大きさ取得したりしたのですが
Unityの場合というか今回実は範囲の判定を transform.position.x でしています
これは画面上をマス目?に区切っているみたいでそのマス情報みたいなのですけど
で、ゲーム上では中央が原点0になり、左がマイナス、右がプラスの数値になります
作成している画面上だと−6、+6が範囲ギリギリでしたので
例えば、次のような感じにしたのですが
if (transform.position.x > 6)
{
Vector3 newPos = new Vector3(6, transform.position.y, transform.position.z);
transform.position = (newPos);
}
実はこれUnity上でプレイすると問題ないのだけどexe作成した場合、ゲーム開始で画面解像度選択できるのです
そこで大きい画面を選ぶと、画面の端まで行かないで制限値になってしまいました><
実行時に画面のマス目?情報というか、そいうの取得しないとですよねぇ
うーんどんな関数あるのかにらめっこ中です><
293: ボッキングの弟子 ◆rZPPjYuxmQ [sage] 2018/01/31(水) 20:52:23.79 ID:4VwlB9Gi(4/5) AAS
>>288師匠待ってました
全然バカにしてるとかじゃないのでどっしり構えててください
>>281281(1): 名前は開発中のものです。 [sage] 2018/01/31(水) 17:59:38.45 ID:lwHgI11I(1/8) AAS
>>280
なんだ本職の方なのですね
助言するのも恐れ多いけど、それなら見えない壁を作るのが手っ取り早いのではなかろうか
具体的には空のゲームオブジェクトにコライダーだけ付けるとか…ね
レスありがとうございます
実はコライダーが良く分かってなくて衝突判定しないでどうにか出来ないかと
多分UnityのようなToolはそういうのあるのかなと思って調べてる最中です
>>282ご教示あったリンク先拝見しました
はやりビューポートとの関連ですね、ただ記事中に
「ゲームの画面サイズが600x450でなければうまく動作しません。」と書いてありましたので
うーんと唸って考え中です
ちなみにチュートリアルにあるSpaceShooterというのも、結局Boundaryクラスで
プロパティとして最大値を保持していて、そことの判定をしていたので、もしかしたら
動的にとれる関数は無いのかななんて…
Unityはゲームに特化しているハズなのに、まぁそれは3Dなのでしょうが
2Dの機能として画面外の判定が無いはずがないと思うのでも少し根気よく知れべて見ます
GamemakerStudioには確かあったのでこっちでもきっとある事を祈って実装を考えます
Unityの肝はMonobehaviorとtransformかなって勝手に思ってるので
そこら辺極める感じでやってみたいです
300(1): ボッキングの弟子 ◆rZPPjYuxmQ [sage] 2018/01/31(水) 21:54:29.96 ID:4VwlB9Gi(5/5) AAS
>>295はい、それだと完全に画面外に出ないとOnBecameInvisibleイベントが動かないんです
トライアングルオブジェクトはその名の通り三角形なので、端っこが画面の枠に到達したら
それ以上行かないようにしたいのですが、OnBecameInvisibleは完全に出てからじゃない
反応してくれないのです
>>296296(1): 名前は開発中のものです。 [] 2018/01/31(水) 21:20:41.79 ID:Lb2JJJm6(4/9) AAS
弟子くん
「ゲームの画面サイズが600x450でなければうまく動作しません。」
これはそのページの説明と矛盾してしまうようだが、
実際には
「このセクションでは背景やDestroyAreaなどの(純粋な移動制限以外の)
部分については画面サイズ変更を考慮していないから変えないでね」
と言う意味なのぜ
モバイル編でそのあたりの解像度変更時の解説もあるが
今やりたいこととは関係がないのでとりあえずスルーでよい
移動自体は解像度関係なく、正しく制限される
肝はCamera.main.ViewportToWorldPointとClampだけ
現時点で弟子くんが知りたいことはおそらくこれだけ
ありがとうございます
これについてggったら 外部リンク:belhb.hateblo.jp のページに有用な情報がありました
で、これで次の様なコードを書いてみました
Vector2 position = transform.position;
Vector2 min = Camera.main.ViewportToWorldPoint(new Vector2(0, 0));
Vector2 max = Camera.main.ViewportToWorldPoint(new Vector2(1, 1));
position.x = Mathf.Clamp(position.x, min.x, max.x);
position.y = transform.position.y;
this.transform.position = position;
これで、確かに両端でストップするのですがなんていうか、トライアングルの真ん中で
止まってしまって、端て止まらないんです
説明難しいのですが、例えば右に行った場合、正三角がちょうど真ん中で切れて
直角三角形になって止まる感じです
座標の問題なのかと思いますが、恐らくオブジェクトの座標位置との関係かなと
移動自体はtranstormで行っているのでtransformとのなんかしらの命令があるといいのですが…
外部リンク:gyazo.com
みなさん色々とありがとうございます
とても助かります
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.043s