玩法 / SpringArm
SpringArm Class
弹簧臂
Table of contents
Accessors
collisionEnabled(): boolean client |
---|
启用碰撞 |
collisionInterpSpeed(): number client |
碰撞插值速度,该值用于调整摄像机从碰撞状态恢复为非碰撞状态的速度,用于使摄像机碰撞效果更加平滑 |
length(): number client |
弹簧臂长度 |
localTransform(): Transform client |
弹簧臂相对变换 |
useControllerRotation(): boolean client |
使用控制器控制旋转 |
worldTransform(): Transform client |
弹簧臂世界变换 |
zoomDistanceRange(): Vector2 client |
摄像机放缩距离范围 |
zoomEnabled(): boolean client |
是否开启摄像机放缩距离 |
zoomScale(): number client |
摄像机放缩距离输入比例 |
Accessors
collisionEnabled
• | • | ||||
---|---|---|---|---|---|
启用碰撞 Precautions 开启后弹簧臂才会检测碰撞的物体并收缩至离挂载目标最近的碰撞物体处 注意:要修改检测轨迹必须通过修改弹簧臂长度(TargetArmLength)以及targetOffset、slotOffset来实现,诸如直接修改弹簧臂位置的方式会导致偏移处不触发碰撞收缩 Returns
| 启用碰撞 Precautions 开启后弹簧臂才会检测碰撞的物体并收缩至离挂载目标最近的碰撞物体处 注意:要修改检测轨迹必须通过修改弹簧臂长度(TargetArmLength)以及targetOffset、slotOffset来实现,诸如直接修改弹簧臂位置的方式会导致偏移处不触发碰撞收缩 Parameters
|
ts
@Component
export default class Example_SpringArm extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
if(SystemUtil.isServer()) {
// 生成10根柱子用作摄像机弹簧杆碰撞
for (let i = 0;
i < 10;
i++) {
GameObject.spawn<Model>("26950",{transform: new Transform(new Vector(100, i * 100, 0), Rotation.zero, Vector.one)});
}
}
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,启用/禁用摄像机弹簧杆碰撞
InputUtil.onKeyDown(Keys.One, () => {
myCamera.springArm.collisionEnabled = !myCamera.springArm.collisionEnabled;
console.log("摄像机弹簧臂的碰撞 " + myCamera.springArm.collisionEnabled);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用摄像机弹簧杆移动碰撞检测
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.collisionEnabled = !myCamera.springArm.collisionEnabled;
console.log("摄像机弹簧臂移动碰撞检测 " + myCamera.springArm.collisionEnabled);
});
}
}
}
@Component
export default class Example_SpringArm extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
if(SystemUtil.isServer()) {
// 生成10根柱子用作摄像机弹簧杆碰撞
for (let i = 0;
i < 10;
i++) {
GameObject.spawn<Model>("26950",{transform: new Transform(new Vector(100, i * 100, 0), Rotation.zero, Vector.one)});
}
}
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,启用/禁用摄像机弹簧杆碰撞
InputUtil.onKeyDown(Keys.One, () => {
myCamera.springArm.collisionEnabled = !myCamera.springArm.collisionEnabled;
console.log("摄像机弹簧臂的碰撞 " + myCamera.springArm.collisionEnabled);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用摄像机弹簧杆移动碰撞检测
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.collisionEnabled = !myCamera.springArm.collisionEnabled;
console.log("摄像机弹簧臂移动碰撞检测 " + myCamera.springArm.collisionEnabled);
});
}
}
}
collisionInterpSpeed
• | • | ||||
---|---|---|---|---|---|
碰撞插值速度,该值用于调整摄像机从碰撞状态恢复为非碰撞状态的速度,用于使摄像机碰撞效果更加平滑 Precautions 默认值是2,生效范围0-20,值越大速度越快,当等于0时,会关闭摄像机碰撞插值效果; 该速度不是固定的,而是会由快变慢 Returns
| 碰撞插值速度,该值用于调整摄像机从碰撞状态恢复为非碰撞状态的速度,用于使摄像机碰撞效果更加平滑 Precautions 默认值是2,生效范围0-20,值越大速度越快,当等于0时,会关闭摄像机碰撞插值效果; 该速度不是固定的,而是会由快变慢 Parameters
|
ts
@Component
export default class Example_SpringArm extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
if(SystemUtil.isServer()) {
// 生成10根柱子用作摄像机弹簧杆碰撞
for (let i = 0;
i < 10;
i++) {
GameObject.spawn<Model>("26950",{transform: new Transform(new Vector(100, i * 100, 0), Rotation.zero, Vector.one)});
}
}
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,启用/禁用摄像机弹簧杆碰撞
InputUtil.onKeyDown(Keys.One, () => {
myCamera.springArm.collisionEnabled = !myCamera.springArm.collisionEnabled;
console.log("摄像机弹簧臂的碰撞 " + myCamera.springArm.collisionEnabled);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用摄像机弹簧杆移动碰撞检测
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.collisionEnabled = !myCamera.springArm.collisionEnabled;
console.log("摄像机弹簧臂移动碰撞检测 " + myCamera.springArm.collisionEnabled);
});
}
}
}
@Component
export default class Example_SpringArm extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
if(SystemUtil.isServer()) {
// 生成10根柱子用作摄像机弹簧杆碰撞
for (let i = 0;
i < 10;
i++) {
GameObject.spawn<Model>("26950",{transform: new Transform(new Vector(100, i * 100, 0), Rotation.zero, Vector.one)});
}
}
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,启用/禁用摄像机弹簧杆碰撞
InputUtil.onKeyDown(Keys.One, () => {
myCamera.springArm.collisionEnabled = !myCamera.springArm.collisionEnabled;
console.log("摄像机弹簧臂的碰撞 " + myCamera.springArm.collisionEnabled);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用摄像机弹簧杆移动碰撞检测
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.collisionEnabled = !myCamera.springArm.collisionEnabled;
console.log("摄像机弹簧臂移动碰撞检测 " + myCamera.springArm.collisionEnabled);
});
}
}
}
length
• | • | ||||
---|---|---|---|---|---|
弹簧臂长度 Precautions 调整摄像机与挂点之间的距离 Returns
| 弹簧臂长度 Precautions 调整摄像机与挂点之间的距离 Parameters
|
ts
@Component
export default class Example_SpringArm_Length extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
@Component
export default class Example_SpringArm_Length extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
localTransform
• | • | ||||
---|---|---|---|---|---|
弹簧臂相对变换 Returns
| 弹簧臂相对变换 Precautions 弹簧臂的相对变换,用于设置弹簧臂的相对位置、相对旋转以及相对缩放 Parameters
|
ts
@Component
export default class Example_SpringArm_LocalTransform extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
@Component
export default class Example_SpringArm_LocalTransform extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
useControllerRotation
• | • | ||||
---|---|---|---|---|---|
使用控制器控制旋转 Precautions 开启后,使用控制器的旋转作为摄像机的旋转 Returns
| 使用控制器控制旋转 Precautions 开启后,使用控制器的旋转作为摄像机的旋转 Parameters
|
ts
@Component
export default class Example_SpringArm_UseControllerRotation extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
@Component
export default class Example_SpringArm_UseControllerRotation extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
worldTransform
• | • | ||||
---|---|---|---|---|---|
弹簧臂世界变换 Precautions 弹簧臂的世界变换,用于设置弹簧臂的世界位置、世界旋转以及世界缩放 Returns
| 弹簧臂世界变换 Precautions 弹簧臂的世界变换,用于设置弹簧臂的世界位置、世界旋转以及世界缩放 Parameters
|
ts
@Component
export default class Example_SpringArm_WorldTransform extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
@Component
export default class Example_SpringArm_WorldTransform extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
zoomDistanceRange
• | • | ||||
---|---|---|---|---|---|
摄像机放缩距离范围 Precautions 双指或鼠标滚轮放缩摄像机弹簧臂长度范围,默认值60~500 Returns
| 摄像机放缩距离范围 Precautions 双指或鼠标滚轮放缩摄像机弹簧臂长度范围,默认值60~500 Parameters
|
ts
@Component
export default class Example_SpringArm_UseControllerRotation extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
@Component
export default class Example_SpringArm_UseControllerRotation extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
zoomEnabled
• | • | ||||
---|---|---|---|---|---|
是否开启摄像机放缩距离 Precautions 是否开启双指或鼠标滚轮放缩摄像机弹簧臂长度,默认开启,仅在当前摄像机弹簧臂长度处于摄像机放缩距离范围内时生效 Returns
| 是否开启摄像机放缩距离 Precautions 是否开启双指或鼠标滚轮放缩摄像机弹簧臂长度,默认开启,仅在当前摄像机弹簧臂长度处于摄像机放缩距离范围内时生效 Parameters
|
ts
@Component
export default class Example_SpringArm_UseControllerRotation extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
@Component
export default class Example_SpringArm_UseControllerRotation extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
zoomScale
• | • | ||||
---|---|---|---|---|---|
摄像机放缩距离输入比例 Precautions 控制双指距离或鼠标滚轮滚动变化单位距离时,摄像机弹簧臂长度变化大小,默认值1, 范围是0-10 Returns
| 摄像机放缩距离输入比例 Precautions 控制双指距离或鼠标滚轮滚动变化单位距离时,摄像机弹簧臂长度变化大小,默认值1, 范围是0-10 Parameters
|
ts
@Component
export default class Example_SpringArm_UseControllerRotation extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}
@Component
export default class Example_SpringArm_UseControllerRotation extends Script {
// 当脚本被实例后,会在第一帧更新前调用此函数
protected onStart(): void {
// 下列代码仅在客户端执行
if(SystemUtil.isClient()) {
// 获取当前摄像机
let myCamera = Camera.currentCamera;
// 添加一个按键方法:按下键盘“1”,切换摄像机弹簧臂的偏移(0, 100, 100),2秒后复原
InputUtil.onKeyDown(Keys.One, () => {
console.log("摄像机弹簧臂的本地变换 " + myCamera.springArm.localTransform);
console.log("摄像机弹簧臂的世界变换 " + myCamera.springArm.worldTransform);
});
// 添加一个按键方法:按下键盘“2”,启用/禁用控制器操作摄像机的旋转5秒
InputUtil.onKeyDown(Keys.Two, () => {
myCamera.springArm.useControllerRotation = false;
setTimeout(() => {
myCamera.springArm.useControllerRotation = true;
}, 5000);
});
// 添加一个按键方法:按住键盘“3”,增加摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Three, () => {
myCamera.springArm.length += 1;
});
// 添加一个按键方法:按住键盘“4”,减少摄像机弹簧臂的长度
InputUtil.onKeyPress(Keys.Four, () => {
myCamera.springArm.length -= 1;
});
}
}
}