我正在尝试制作一款第一人称游戏,移动鼠标可以改变相机角度,类似于第一人称模式下的Roblox或《我的世界》。如何做到这一点?我在问如何实现基本功能,这样就没有代码可以提供了。我只需要知道如何在Swift或更具体地说是Metal或Cocoa中隐藏和锁定光标位置。
您可以子类化NSView,为鼠标输入和退出添加跟踪区域,覆盖NSView mouseEntered和mouseExited方法,只需隐藏和取消隐藏光标即可:
import Cocoa
class HiddenCursorView: NSView {
override func awakeFromNib() {
addTrackingArea(NSTrackingArea(rect: bounds, options: [.activeAlways, .mouseEnteredAndExited], owner: self, userInfo: nil))
}
override func mouseEntered(with event: NSEvent) {
NSCursor.hide()
}
@objc override func mouseExited(with event: NSEvent) {
NSCursor.unhide()
}
}