タグ付けされた質問 「mouse」

コンピュータゲームで非常に一般的な入力デバイス。方向入力に比べて、より直接的な動きを提供します。

1
FPSでのマウスの照準
一人称シューティングゲームを作成し、カメラをマウスで動かしたいと思います。問題は、カーソルが画面の制限に達すると、カメラが回転しなくなることです。とにかくマウスを中央に保ち、その動きを検出するにはどうすればよいですか?


1
等尺性レンダリングとピッキング?
私は、ダイアモンド型の世界で等尺性タイルをプロット(world-> screen)およびマウス選択(world-> screen)するための式を探していました。私が試したものは常に、うまくいっているように見えます。これを行うための通常/正しい方法は何ですか?

6
C#を使用してUnity3Dでシングルクリックとダブルクリックを適切に区別する方法は?
ここで理解し、学習しようとしているのは非常に基本的なことです:C#を使用して、Unityの3つのメインマウスボタンのシングルクリックとダブルクリックを適切に区別する最も一般的で洗練された方法は何ですか? 言葉を適切に強調することは、何の役にも立ちません。このウェブサイトでこれが一度も聞かれたことがないことに驚きましたが、もちろん、UnityのフォーラムやUnityの質問/回答ページで同様の質問を数多く見つけました。ただし、これらのリソースに回答が投稿される場合が多いため、それらはすべて明らかに間違っているか、少なくとも少しアマチュアすぎるように見えました。 説明させてください。提案されたソリューションには、常に2つのアプローチと対応する欠陥のいずれかがありました。 クリックが発生するたびに、最後のクリックからの時間差を計算し、それが所定のしきい値よりも小さい場合、ダブルクリックが検出されます。ただし、このソリューションでは、ダブルクリックが検出される前にクイックシングルクリックが検出されます。これは、シングルクリックアクションとダブルクリックアクションの両方をアクティブにするため、ほとんどの状況で望ましくありません。 大まかな例: float dclick_threshold = 0.25f; double timerdclick = 0; if (Input.GetMouseButtonDown(0) { if (Time.time - timerdclick) > dclick_threshold) { Debug.Log("single click"); //call the SingleClick() function, not shown } else { Debug.Log("double click"); //call the DoubleClick() function, not shown } timerdclick = Time.time; } アクティブ化されるシングルクリックの待機遅延を設定します。つまり、クリックごとに、最後のクリックからの遅延時間が所定のしきい値を超える場合にのみ、シングルクリックアクションをアクティブにします。ただし、シングルクリックが検出される前に待機に気づくことができるため、これは結果が遅くなります。さらに悪いことに、この種のソリューションは、OSレベルでのユーザーのダブルクリック速度設定の速度や速度を考慮していないため、マシン間の不一致に悩まされています。 大まかな例: float …
15 c#  unity  mouse 

6
XNAでマウス入力を処理する方法は?
XNAでカードゲームを開発しています。 OnClickXNAにオブジェクトのイベントはありますか? プレイヤーがカードをクリックしたときにカードを動かそうとしています。このプロジェクトには、カードを描画するSpriteクラスがありますが、OnClickイベントなどを使用する方法がわからないため、少し立ち往生しています。
13 xna  c#  input  mouse 

4
SDLのトラップマウス
ユーザーのマウスをゲーム内にトラップするにはどうすればよいですか?フルスクリーンのゲームではありませんが、ユーザーがマウスを画面外にドラッグできないようにしたいです。 マウスとSDL_WarpCursorの座標を確認してウィンドウ内で(手動で)確認する必要がありますか、それとも自動的な方法がありますか? ありがとうございました。
12 sdl  input  mouse 

4
2つの異なるマウスを同時に検出し、それらの動きを別々に記録することは可能ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 遊ぶために2匹のマウスを必要とするゲームを作ることを考えています。動きを別々に登録する必要があります。これは可能ですか?または、Windowsアーキテクチャはそのようなことを許可していませんか? ありがとうございました。
12 input  windows  mouse 

2
遅延マウス入力を行う方法は?
私はカーゲームをしていて、プレイヤーが酔っているという考えがあります。マウスを左右に動かして回転させる、マウスからの入力を遅らせたいのですが。 ユーザーが与える入力と車の回転量の間に一定の遅延を設定するにはどうすればよいですか? 今私はこれを持っています: h = Mathf.Lerp(h, (((Input.mousePosition.x / Screen.width) * 2) - 1), Time.deltaTime * 2); 何が起こるかはターンが遅れますが、非常に遅いです。つまり、マウスを非常に速く動かすと、車の旋回は非常に遅くなりますが、乗数を上げるTime.deltaTimeと、車の旋回は速くなりますが、遅延の影響は最小限に抑えられます。 他にどのようにこれを行うことができますか?
11 unity  c#  input  mouse 

1
C#/ XNAハードウェアマウスの位置を取得
私はC#を使用していて、ハードウェアマウスの位置を取得しようとしています。最初に試したのは、使いやすいシンプルなXNA機能です。 Vector2 position = new Vector2(Mouse.GetState().X, Mouse.GetState().Y); その後、マウスの描画も行い、Windowsハードウェアマウスと比較して、xnaが提供する座標を持つこの新しいマウスは「ずれ」ています。つまり、数フレーム遅れているということです。たとえば、ゲームが600 fpsで実行されている場合、呪いは反応しますが、60 fpsのソフトウェアではマウスの遅延は許容できなくなります。そこで、ハードウェアマウスだと思ったものを使ってみました。 [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool GetCursorPos(out POINT lpPoint); しかし、結果はまったく同じでした。私はまた、Windowsフォームカーソルを取得しようとしましたが、これも行き止まりでした-動作しましたが、同じ遅延がありました。xna機能をいじくりまわす: GraphicsDeviceManager.SynchronizeWithVerticalRetrace = true/false Game.IsFixedTimeStep = true/fale やや明白な理由で遅延時間を変更しましたが、肝心な点は、それがデフォルトのWindowsマウスの背後にあるにもかかわらずです。一部のゲームでは、ハードウェアアクセラレートマウスのオプションが提供されていることがわかりました。誰でもそれを達成する方法についていくつかのリードを与えることができますか?

5
Vector3で演算子 '> ='を使用できないのはなぜですか?
私は私がように参照する2つの位置の間を移動するための四角形を取得しようとしている_positionAとします_positionB。どちらもタイプVector3です。長方形はうまく動きます。ただし、到達_positionBしても、本来のように反対方向に移動することはありません。 コードをもう一度見てみました。オブジェクトが移動ifすると、コード内のステートメントは、rectsの位置がに等しいフレームを逃したという結論に達しました_positionB。rectsの位置がより大きいか等しい 場合は、コードを変更して方向を逆にすることにしました_positionB。私のコードは長すぎないので、以下に表示します。 using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

2
Unity 5でUI画像のマウスオーバーを検出する方法は?
移動してズームインおよびズームアウトするように設定した画像があります。問題は、ズームはシーンのどこからでも実行できることですが、マウスを画像の上に置いたときにのみズームしたいのです。OnMouseEnter、OnMouseOver、イベントトリガー、コライダーなし、コライダー付き、トリガーコライダー付きの3つすべて、および画像自体と空のゲームオブジェクトでそれらすべてを使用しようとしました。しかし、それらのどれもうまくいっていません...だから私は絶対に困惑しています...誰かがここで助けてくれませんか! これが私のスクリプトです: private float zoom; public float zoomSpeed; public Image map; public float zoomMin; public float zoomMax; void Update () { zoom = (Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * zoomSpeed); map.transform.localScale += new Vector3(map.transform.localScale.x * zoom, map.transform.localScale.y * zoom, 0); Vector3 scale = map.transform.localScale; scale = new Vector3(Mathf.Clamp(map.transform.localScale.x, zoomMin, zoomMax), Mathf.Clamp(map.transform.localScale.y, …
9 unity  c#  gui  image  mouse 

2
Unity3dを介して新しいc#スクリプトを追加するときにVS soution Explorerを強制的に再読み込みしますか?
私はC#スクリプトを作成する(ときCreate -> C# Script)を介しUnity3d やからそれを削除Unity3d- Visual Studioショー私の警告ウィンドウ。 気に障る。 ウィンドウなしでソリューションエクスプローラーで「ReloadAll」を強制する方法はありますか?
8 unity  visual-studio  unity  google-play-services  google-play  physics  simulations  c#  unity  raycasting  unity  virtual-reality  savegame  arcade  c++  steam  ios  objective-c  databases  storage  opengl  vbo  vao  libgdx  scene2d  unity  animation  c#  path-finding  roguelikes  opengl  c++  glsl  2d  physics  phaser  selection  3dsmax  unity  collision-detection  c#  tilemap  isometric  unity  c#  2d  sprites  mouse  scripting  grid  c#  unity  libgdx  java  unity  playstation4  c#  c++  directx  dll  c++cli  libgdx  overlap2d  multiplayer  node.js  websocket  animation  unity  textures  unity  terrain  physics  unity  rotation  movement  transformation  monogame  windows  installer  shaders  unity  virtual-reality  unity  performance  frame-rate  profiler  google-play  appstore  trademark  java  android  libgdx  unity  unity-networking  unity  physics  software-engineering  unity  savegame  physics  2d  unity  unity  c#  unity-networking  textures  geometry  unreal-4  3d-modeling  java  android  libgdx  android  collision-detection  libgdx  rotation  legal  localization  patents  opengl  cubemap  sampler-state  2d  transformation  unity  c#  opengl  glsl  lighting  opentk  c++  collision-detection  physics 

2
障害物にスナップするドラッグ可能なオブジェクトを作成するにはどうすればよいですか?
私はまだマウスでドラッグして別の質問(私はC#でUnityを使用しています)を持ちますが、それほど一般的ではない詳細:ドラッグが発生する経路の途中に障害物が存在する(2Dではなく3Dスペース) 。 説明させてください。"obj"と呼ばれる立方体をドラッグしたい平面があるとします。それは簡単です。これが私の簡単な実装です: void Update () { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if(Physics.Raycast(ray, out hit, 1000000)) obj.transform.position = new Vector3(hit.point.x,0.25F,hit.point.z); } できます。ただし、平面上に障害物である他のいくつかの立方体もあるとします。明らかに、プレイヤーが平面上で「obj」を動かすとき、そのような動きは障害物によってブロックされるべきです。そして、障害物と衝突している間、「obj」はその障害物の側面にのみ移動して移動する必要があります。マウスを動かして "obj"が障害物との衝突をやめると、自由なドラッグスタイルの動きが再開されます。 課題をより困難にするために、障害物でRigidBodyコンポーネントを使用せずにそれを達成するために懸命に努力しています(ドラッグされたオブジェクトはそれを持つことができます)。それを達成するための最も効率的な方法は何ですか?どうもありがとう! 編集:コメンテーターは私の注意を喚起しました、私はスナップするときにオブジェクトが回転することを許可されていることを言及すべきです。 編集2:元の定式化の難しさを考慮して、ドラッグされたオブジェクトでのリジッドボディコンポーネントの使用を許可する質問を変更しました。ソリューションでは、障害物でリジッドボディコンポーネントを使用できません。

2
2D移動(マウスから)を3D軸に沿った変位に変換するにはどうすればよいですか?
小さな3Dシーンエディターを作成しています(オブジェクトの位置の変更のみが可能です)。 各オブジェクトは、3D X / Y / Z軸で描画されます。 仕組み:ユーザーは軸(X、Y、Z)を左クリックして選択し、左クリックを押したままマウスを移動します(オブジェクトを軸方向に移動します)。選択はすでに問題ありhow muchませんが、2Dマウスの動きに応じて、選択した軸に対してオブジェクトを移動する必要があることを知りたいのですが。 例として、この図では、X軸を選択してマウスを左右に動かすと、上下に動かすよりも大きな変位が得られます(この場合はほぼゼロ)。 それは本当にシンプルでなければならないが、私はそれを理解することができません。 入力は、最初の左クリックからのマウスの変位(2Dベクトル)、選択された軸ベクトル(3dベクトル)、モデルビュー/投影行列です。 出力:量(floatまたはdouble)
8 3d  mouse  picking  axis 

6
ゲームでマウスクリックとマウスダウンを識別するにはどうすればよいですか?
ゲームでマウスクリックを処理する最も一般的な方法は何ですか? マウスからの入力を検出する方法は、ボタンが上か下かだけであると仮定します。 私は現在、マウスのクリックがクリックであることに依存していますが、この単純なアプローチでは、達成したいことが大きく制限されます。たとえば、マウスクリックで1回だけ実行する必要があるコードがありますが、マウスクリックとしてマウスダウンを使用すると、ボタンを押している時間に応じて、コードが複数回実行される可能性があります。だから、私はそれをワンクリックで行う必要があります! しかし、クリックを処理する最良の方法は何ですか?マウスが上から下、または下から上に移動したときのクリックか、ボタンがxフレーム/ミリ秒未満の時間でクリックされた場合のクリックであり、そうである場合は、マウスがダウンしたと見なされ、クリックされた場合のクリックxフレーム/ミリ秒またはクリックしてからマウスダウン それぞれのアプローチに用途があることがわかりますが、ゲームで最も一般的なのはどれですか。そして多分私はRTSゲームで最も一般的であるものをより具体的に尋ねますか?
8 input  mouse  control 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.