トップページ > ゲ製作技術 > 2018年01月31日 > 4VwlB9Gi

書き込み順位&時間帯一覧

4 位/73 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000001000200011005



使用した名前一覧書き込んだスレッド一覧
ボッキングの弟子 ◆rZPPjYuxmQ
UnityC#勉強してMMO作たいけどどうする!?4(^^

書き込みレス一覧

UnityC#勉強してMMO作たいけどどうする!?4(^^
277 :ボッキングの弟子 ◆rZPPjYuxmQ [sage]:2018/01/31(水) 12:22:26.11 ID:4VwlB9Gi
>>271
いやいや押しかけ弟子したのでご迷惑かもしれないけど何もしなくても師匠と呼ばせてください

>>273
新しいスレですが、自分そんなに続くかどうかも自信ないしこうやって他の人がやってるのを見ながらが楽しいのでここがいいかなと思ったんですが
お邪魔なら別スレ建ててみますが…

>>274
SS見るたびにすごいなって思います、早く自分もそういうの作りたいです


いま画面にトライアングルオブジェクトを配置して、AD←→で移動できました
でも画面の外にいっちゃったりしますしfps考慮してないけど、とりあえず動くのは楽しいです
ttps://gyazo.com/6b7c5d9fa5b4a2ec8314d0b031cf3053
UnityC#勉強してMMO作たいけどどうする!?4(^^
279 :ボッキングの弟子 ◆rZPPjYuxmQ [sage]:2018/01/31(水) 16:20:07.48 ID:4VwlB9Gi
>>278
レスありです
Mathf.Clamp調べてみます
Unity歴が短いけどプログラマ歴は昔やってたのでどうにかなりそうです

チュートリアルも見てますけど、なかなか頭に入ってこないです><
UnityC#勉強してMMO作たいけどどうする!?4(^^
280 :ボッキングの弟子 ◆rZPPjYuxmQ [sage]:2018/01/31(水) 16:50:35.39 ID:4VwlB9Gi
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作成した場合、ゲーム開始で画面解像度選択できるのです
そこで大きい画面を選ぶと、画面の端まで行かないで制限値になってしまいました><

実行時に画面のマス目?情報というか、そいうの取得しないとですよねぇ
うーんどんな関数あるのかにらめっこ中です><
UnityC#勉強してMMO作たいけどどうする!?4(^^
293 :ボッキングの弟子 ◆rZPPjYuxmQ [sage]:2018/01/31(水) 20:52:23.79 ID:4VwlB9Gi
>>288
師匠待ってました
全然バカにしてるとかじゃないのでどっしり構えててください

>>281
レスありがとうございます
実はコライダーが良く分かってなくて衝突判定しないでどうにか出来ないかと
多分UnityのようなToolはそういうのあるのかなと思って調べてる最中です

>>282
ご教示あったリンク先拝見しました
はやりビューポートとの関連ですね、ただ記事中に
「ゲームの画面サイズが600x450でなければうまく動作しません。」と書いてありましたので
うーんと唸って考え中です
ちなみにチュートリアルにあるSpaceShooterというのも、結局Boundaryクラスで
プロパティとして最大値を保持していて、そことの判定をしていたので、もしかしたら
動的にとれる関数は無いのかななんて…

Unityはゲームに特化しているハズなのに、まぁそれは3Dなのでしょうが
2Dの機能として画面外の判定が無いはずがないと思うのでも少し根気よく知れべて見ます
GamemakerStudioには確かあったのでこっちでもきっとある事を祈って実装を考えます

Unityの肝はMonobehaviorとtransformかなって勝手に思ってるので
そこら辺極める感じでやってみたいです
UnityC#勉強してMMO作たいけどどうする!?4(^^
300 :ボッキングの弟子 ◆rZPPjYuxmQ [sage]:2018/01/31(水) 21:54:29.96 ID:4VwlB9Gi
>>295
はい、それだと完全に画面外に出ないとOnBecameInvisibleイベントが動かないんです
トライアングルオブジェクトはその名の通り三角形なので、端っこが画面の枠に到達したら
それ以上行かないようにしたいのですが、OnBecameInvisibleは完全に出てからじゃない
反応してくれないのです

>>296
ありがとうございます
これについてggったら ttp://belhb.hateblo.jp/entry/2016/01/15/043116 のページに有用な情報がありました
で、これで次の様なコードを書いてみました
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とのなんかしらの命令があるといいのですが…
ttps://gyazo.com/d1c52cf006247940a37496d177da75cc

みなさん色々とありがとうございます
とても助かります


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。