実現したいこと
あるオブジェクト上にカーソルを動かすとカーソルのテクスチャが指定のものに変更される、といったプログラムを作りたいです。
発生している問題・分からないこと
変更したい画像のテクスチャタイプも確認したのですが、スクリプトをアタッチしたオブジェクト上にカーソルを移動させてもテクスチャが変わりません。エラー文なども出ないのでどこを直したら良いのかさっぱりわかりません。
該当のソースコード
using UnityEngine; public class CorsorChanger : MonoBehaviour { public Texture2D customCursor; //ここで指定した画像に変更 void OnMouseEnter() { Cursor.SetCursor(customCursor,new Vector2(0,0), CursorMode.ForceSoftware); } void OnMouseExit() { // 元々のテクスチャに戻る Cursor.SetCursor(null,new Vector2(0,0), CursorMode.ForceSoftware); } }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
CursorModeをForceSoftWareでなく、Autoにもしてみましたが変わりませんでした。
何を間違えているのか、またその修正方法が分かる方がいらっしゃいましたらご教授お願いいたします。
補足
バージョン Unity 6 (6000.0.5f1)
こちらは確認してみましたか?
https://www.studio-cheap.com/2024/05/25/%E3%80%903d%E3%80%91%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E3%82%92%E5%A4%89%E5%8C%96%E3%81%95%E3%81%9B%E3%82%8B%E3%80%90unity6%E3%80%91/
コメントありがとうございます。残念ながらこちらのサイトも確認した上での機能不全なんです、、、。
こちらで確認したところ、問題なく動作しました。
> エラー文なども出ないのでどこを直したら良いのかさっぱりわかりません。
とのことですが、まずはDebug.Log()でOnMouseEnter()やOnMouseExit()が呼ばれているかを確認したほうがいいでしょう。
試したところ、ログが表示されずOnMouseEnterがそもそも呼び出せていないことがわかりました。
さらに理由を探ったところ、Colliderが設置されていなかったため呼び出すも何も検知できない状態でした。BoxCollideを設置して再度試したところ画像も変わり、ログも呼び出されました。
本当に初歩的なミスでお騒がせしましたが、無事解決し大変助かりました!コメントありがとうございました!!

回答1件
あなたの回答
tips
プレビュー