のwin32との任意の解決策を知っているドントAPIはプラットフォームに依存し、別のプラットフォームでは動作しません。独自のカスタムカーソルマネージャを追加することができます。
//container for cursor data
[System.Serializable]
public struct CustomCursor
{
public Texture2D Texture;
public Vector2 HotSpot;
public CursorMode Mode;
}
//container for all cursor you used in you project
[System.Serializable]
public class CursorsHolder
{
[SerializeField]
private CustomCursor defaultCursor;
[SerializeField]
private CustomCursor cursorA;
[SerializeField]
private CustomCursor cursorB;
[SerializeField]
private CustomCursor cursorC;
public CustomCursor DefaultCursor { get { return defaultCursor; } }
public CustomCursor CursorA { get { return cursorA; } }
public CustomCursor CursorB { get { return cursorB; } }
public CustomCursor CursorC { get { return cursorC; } }
public void InitializeDefault(CustomCursor defaultCursor)
{
this.defaultCursor = defaultCursor;
}
}
public interface ICursorHandler
{
Texture2D CurrentCursor { get; }
void SetCursor(CustomCursor newCursor);
}
//Manager that cached last setted cursor
public class CursorHandler
{
private CustomCursor currentCursor;
public CustomCursor CurrentCursor { get { return currentCursor; } }
public void SetCursor(CustomCursor newCursor)
{
currentCursor = newCursor;
Cursor.SetCursor(currentCursor.Texture, currentCursor.HotSpot, currentCursor.Mode);
Debug.LogFormat("{0}", currentCursor.Texture);
}
}
//Main script for cursor management usage
public class MyScript : MonoBehaviour
{
[SerializeField]
private CursorsHolder cursorsData;
ICursorHandler cursorHandler = new CursorHandler();
private void Awake()
{
cursorsData.InitializeDefault(new CustomCursor() { Texture = PlayerSettings.defaultCursor, HotSpot = Vector2.zero, Mode = CursorMode.ForceSoftware });
cursorHandler.SetCursor(cursorsData.DefaultCursor);
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{
cursorHandler.SetCursor(cursorsData.CursorA);
}
if (Input.GetKeyDown(KeyCode.B))
{
cursorHandler.SetCursor(cursorsData.CursorB);
}
if (Input.GetKeyDown(KeyCode.C))
{
cursorHandler.SetCursor(cursorsData.CursorC);
}
if (Input.GetKeyDown(KeyCode.D))
{
cursorHandler.SetCursor(cursorsData.DefaultCursor);
}
}
}
プレーヤの設定でデフォルトカーソルを割り当てることを忘れないでください。
たちを表示しますあなたのコード、あなたは何を試しましたか? – MeanGreen
@MeanGreenまあ、どこから始めるのか本当に分かりません。しかし、私は私の質問で言ったように、私はGoogleで検索し、[this](https://stackoverflow.com/questions/918990/c-sharp-capturing-the-mouse-cursor-image)が私の唯一の結果でした見つけることができ、私はTarsierの答えを試して、それは "ハンドルはICONを表していない"エラーになります。 – Sinci1