- 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 みなさん色々とありがとうございます とても助かります
|