gpt4 book ai didi

android - 如何在Unity3d中制作相机摇摄js脚本

转载 作者:行者123 更新时间:2023-11-30 02:55:10 24 4
gpt4 key购买 nike

我正在尝试制作以下相机平移 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; 没有任何效果,因为您会立即在下一行中覆盖它。您的代码基本上只会在 -1010 之间翻转 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 设置为 -11 如果你的一个按钮被按下并且相机将移动得更远到那边。

如果您在向量运算方面遇到问题,请查看 'Understanding Vector Arithmetic' 一章来自 Unity 手册。

上面的代码会使相机的移动不是很流畅,但是这样更容易理解基本概念。您可以使用函数 Vector3.MoveTowards以获得更流畅的运动,链接引用中显示的示例应该可以帮助您实现它。

关于android - 如何在Unity3d中制作相机摇摄js脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23398371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com