- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景
我想同步移动一个 SCNNode 和一个包含图像的 UIView。 UIView 和 UIImageView 位于节点上,因此看起来它们是 SCNNode(立方体)的纹理。
代码
let move:Float = 15
let moveCube: SCNAction = SCNAction.moveTo(SCNVector3Make(cube.position.x-move, cube.position.y, cube.position.z), duration: 1)
我尝试了什么/我现在是怎么做的
我使用以下方法为 UIView 设置动画:
var move:Float = 15
var projMove = scnView.projectPoint(SCNVector3(x: move, y: 0, z: 0)) //converts 3D coordSystem into 2D
UIView.animateWithDuration(1, delay: 0, options: nil | UIViewAnimationOptions.CurveEaseOut, animations: {
self.myView.center.x = CGFloat(-projMove.x)
}, completion: { finished in
})
这有效,立方体向左移动,UIView 也是如此。
但这段代码并不是我认为的最佳解决方案。
问题
提前致谢:)
最佳答案
Is there a better way to let the cube move left, including the UIView?
是的。您可以取消投影 View 的坐标并将其用作立方体移动的引用。参见 Unproject Point
Can I possibly set one surface's (the front e.g.) texture to the image instead?
是的,只需将立方体 Material 的漫反射 channel 设置为您的 UIImage 即可。
Could I even set the overall texture to an image and then put the image above it using it's alpha channel?
也许,我不太确定你在说什么,你介意扩展一下吗?如果我懂一点 Spritekit 将是你最好的选择。
以下是评论的更新答案:
I do use the unprojected points before projecting them in the SCNAction. And I meant more like moving both at once instead of a separate animation for each.
我认为没有。您可以对第三方属性进行动画处理并更改其 setter 以更改 View 和节点。您也可以使用 block ,但最终无法直接链接两者。
Well, I want to set the image only to one side of the cube.
您只需提供 6 种 Material 的数组,其中一种是您的图像,另外 5 种是要填充的第二种 Material 。您需要调整顺序来找到图像在数组中的位置。
That relates to #2, I want to set the texture to a color and then set one side's texture to the image I want to use.
有两种方法可以实现此目的。您可以使用着色器将图像添加到纯色之上,或者您可以制作第二个稍小(小于 1%)的立方体,并将该立方体设置为您想要的背景颜色。然后,在较大的图像上使用透明图像。
关于ios - "Stick"UIView和SCNNode一起做动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29755102/
水平对齐三个容器的最佳方式是什么?左侧容器宽度为 3em,右侧容器宽度为 3em,中间容器宽度为其余宽度? layout:{ type : 'hbox', pack : 'center
在Unix中设置导出路径时,示例: export PATH=$PATH: $EC2_HOME/bin 如果我退出终端并重新打开它以继续工作,我必须再次执行所有步骤,每次都设置路径。 我想知道如何设置路
我正在运行 Jenkins 1.455。我有一个主人和几个奴隶。我在构建上使用标签,并将从属设备设置为“仅将这台机器用于相关工作”,一切正常。然而,我想做相反的事情,并将从站设置为“尽可能多地利用这个
我的 tableView 顶部的单元格上有一个 SegmentedControl (tableView 由所有静态单元格组成)...我希望顶部单元格(和分段控件)“粘住”,以便用户始终可见滚动浏览表格
背景 我想同步移动一个 SCNNode 和一个包含图像的 UIView。 UIView 和 UIImageView 位于节点上,因此看起来它们是 SCNNode(立方体)的纹理。 代码 let mov
我正在尝试用 HTML5+CSS3 制作一个简单的 1page 响应式网站,它在一个大的可滚动页面上有几个部分彼此下方,如下所示: Section 1 [content] Section 2 [con
我正在尝试制作一个“图像 strip ”(许多小图像从屏幕左侧开始向左浮动到右侧)。问题是当我调整浏览器大小时,图像开始“堆叠”在(默认 block 行为)下,而不是简单地消失,“伸出容器”。我试过将
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 14 年前。 Improve thi
我正在尝试使用准备好的语句,虽然 MySqlCommand 执行得很好,但执行时间很糟糕。我让它将 cmd.IsPrepared 的结果写入控制台,果然,它是错误的。这是我设置 MySqlComman
我正在尝试使用准备好的语句,虽然 MySqlCommand 执行得很好,但执行时间很糟糕。我让它将 cmd.IsPrepared 的结果写入控制台,果然,它是错误的。这是我设置 MySqlComman
Sticky BIT,简称 SBIT 特殊权限,可意为粘着位、粘滞位、防删除位等。 SBIT 权限仅对目录有效,一旦目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root
我正在尝试创建一个简单的Android游戏,一个2D Action 射击游戏,屏幕上有2个控制杆(圆圈),左边一个是移动控制,右边一个是武器控制。方向由拇指相对于圆中心的位置控制。 我一直在关注此网站
我使用路径点创建了一个粘性导航。导航嵌套在位于包装器内的 header 内。如果导航设置为 width:100% 即包装器的整个宽度,则当命中航路点且 position:fixed 时,其宽度将变为正
在家里我们有一个代理服务器。在工作中我们没有。 Firefox 在这方面令人恼火:每当我启动它时,它默认为代理服务器。如果我执行“工具”>“选项”>“设置”并选择“无代理”,没问题。但是,如果我关闭
我正在使用 iCarousel。轮播包含大约 10 张图片。当屏幕转换时,图像会卡在下一个屏幕上。我在返回原始屏幕时正在使用 popToRootview。它与 UIImage alloc 有关系吗?
我正在使用 twilio 发送短信。如果我直接插入我的号码 8881231234 就可以了。下面的代码有效: $client = new Services_Twilio($sid, $token);
我在 TKinter 中构建了一个相当复杂的 GUI,所以很自然地一直在使用 .grid 函数。 我已将我的一些小部件分组到框架中以使其更易于处理,但由于某些原因,当我在框架中使用 .grid 和小部
我在使用 worpress 模板时遇到问题,我试图让页脚贴在页面底部。我找到了执行此操作的代码,但在某些页面上,页脚和内容正文之间有一个灰色部分。我已经在 firebug bug 中检查过这个,那里似
My Cart (0 items)和#cart 不重叠,但它们之间没有像素。我遇到的问题是当我将鼠标悬停在 My Cart 上时#cart显示,给定 :hover 类是正确的,但问题是当我将鼠标从 M
我被分配了一个小型 HTML 元素,我对 Logo 和导航栏之间的关系感到困惑。 Logo 应该有自己的位置,但无论我尝试应用什么修复,它似乎都粘在导航栏上。 我尝试取消嵌套 div,并将它用作独立的
我是一名优秀的程序员,十分优秀!