我不知道该怎么做。请不要关闭此问题,我需要建议或任何提示来实施它。
来源https://www.youtube.com/watch?v=4uHyHRKmxZk
我创建了一个SCNCylinder
的节点,并通过updateAtTime
方法从目标绘制到屏幕中心
首先,我认为它是使用TextNode绘制的。所以我尝试关注
在该类中,我可以通过方法帮助在传递给UnitLength
的每个单元上绘制一个节点
func drawOtherBaseUnit(height:Float,intoThe unitType:UnitLength,toTheNode zAxisNode:SCNNode) {
print("---------------------------------------------------------------------")
let distanceInTarget = Converter.convert(value: Double(height), to: unitType).output + 1
print("DISTANCE",distanceInTarget)
print("---------------------------------------------------------------------")
var text = ""
switch unitType {
case .inches:
text = "INCH"
case .centimeters:
text = "CM"
default:
return
}
if !distanceInTarget.isNaN {
var distance = Int(distanceInTarget)
var i = 0
while distance > 0 {
print("distance ",distance)
let node = UnitNode(withPosition: SCNVector3Make(0, 0, 0), radius: CGFloat(Converter.convert(value: 0.1, from: unitType, to: UnitLength.meters).output),text:"\(text) \(i)",forType:unitType)
let valueIncreaseOnAsPerTarget = Int(distanceInTarget) - distance
let valueToIncreaseMeter = Converter.convert(value: Double(valueIncreaseOnAsPerTarget), from: unitType, to: UnitLength.meters).output
node.position.y = -Float(valueToIncreaseMeter)
node.position.x = 0
zAxisNode.addChildNode(node)
distance -= 1
i += 1
}
}
}
UnitNode
类是绘制SCNText和其他一些节点。
这很好。我可以看到每个提供的节点。
但是,如果我对英制使用drawOtherBaseUnit
且CM UI滞后,则它并不平滑。
实现所需输出的正确方法吗?