unityにて、Playerをキー入力で動かし画面端(カメラビューポート内)の範囲で移動制限させるものを下記のように書いてみたのですが、いまいち思い通りのものにならず悩んでます。
画面端まで行かずはじかれるような動きにもなり、下記をどう修正すればよいかアドバイスを頂ければ助かります。
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Player : MonoBehaviour 6{ 7 public float speed; 8 void Update() 9 { 10 Vector3 min = Camera.main.ViewportToWorldPoint(new Vector3(0, 0, 0)); 11 Vector3 max = Camera.main.ViewportToWorldPoint(new Vector3(1, 1, 0)); 12 Vector3 pos = transform.position; 13 14 float xx = Input.GetAxisRaw("Horizontal"); 15 float yy = Input.GetAxisRaw("Vertical"); 16 GetComponent<Rigidbody>().velocity = new Vector3(xx, yy, 0.0f) * speed; 17 18 GetComponent<Rigidbody>().position = new Vector3( 19 Mathf.Clamp(GetComponent<Rigidbody>().position.x, min.x, max.x), 20 Mathf.Clamp(GetComponent<Rigidbody>().position.y, min.y, max.y), 21 0.0f 22 ); 23 } 24} 25 26
透明な壁を配置する、とかでは駄目ですか?
早速、ありがとうございます!
覚えたい事としまして、どんなスマホ機種や環境にも自動で対応する書き方を覚えたくて自動で取得する書き方を学んでました。ですが中々苦戦してましてこちらで伺わせて頂いた次第でした。
回答1件
あなたの回答
tips
プレビュー