- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作以下相机平移 js 脚本,使其正常工作,即左右平移相机。到目前为止,我所完成的是仅将相机向左移动并返回到其起始位置。我无法让它在 gui.button 被点击/触摸时左右移动。
这是js脚本:
#pragma strict
var target : GameObject;
var xpositionLeft = 10;
var xpositionRight = -10;
//var smooth : float = 5; // Don't know where should I put this var to make it pan smooth?
private static var isPanning = false;
function Update()
{
if(isPanning == true)
{
transform.position.x = target.transform.position.x;
transform.position.x = xpositionLeft;
}
else
{
transform.position.x = target.transform.position.x; // It only pan the camera left, not right!
transform.position.x = xpositionRight;
}
}
static function doPanning ()
{
isPanning = !isPanning;
}
有人可以提供有关如何使该脚本工作的线索吗?我是 Unity 和编程的新手,所以非常欢迎任何帮助。预先感谢大家的宝贵时间和回答。
最佳答案
您的代码有几个问题。首先,行 transform.position.x = target.transform.position.x;
没有任何效果,因为您会立即在下一行中覆盖它。您的代码基本上只会在 -10
和 10
之间翻转 transform.position.x
。
其次,您期望的行为与代码中的逻辑不匹配。您只有两种状态,isPanning true 和 false,但您需要三种状态:向左平移
、向右平移
和什么都不做
。
// how far the camera should move witch each click
var xPositionOffset = 10;
// -1 = left, 0 = do dothing, 1 = right
var panDirection = 0;
function Update()
{
if (panDirection != 0) // pan left/right
{
transform.position.x = transform.position.x + (panDirection * xPositionOffset);
panDirection = 0;
}
}
现在你只需要将变量 panDirection
设置为 -1
或 1
如果你的一个按钮被按下并且相机将移动得更远到那边。
如果您在向量运算方面遇到问题,请查看 'Understanding Vector Arithmetic' 一章来自 Unity 手册。
上面的代码会使相机的移动不是很流畅,但是这样更容易理解基本概念。您可以使用函数 Vector3.MoveTowards
以获得更流畅的运动,链接引用中显示的示例应该可以帮助您实现它。
关于android - 如何在Unity3d中制作相机摇摄js脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23398371/
我有这个代码:http://jsfiddle.net/Ym4NP/2/为什么“内容”div 不向上移动,只向下移动?以及如何将 $this(选择器)发送到回调函数? 最佳答案 我只会使用 jQuery
我是一名优秀的程序员,十分优秀!