45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import { _decorator, Component, Node, CameraComponent, Vec3, Camera } from "cc";
|
|
const { ccclass, property } = _decorator;
|
|
|
|
let vec_1:Vec3 = new Vec3();
|
|
let vec_2:Vec3 = new Vec3();
|
|
@ccclass("GameCamera")
|
|
export class GameCamera extends Component {
|
|
|
|
@property(Camera)
|
|
camera:Camera = null!;
|
|
|
|
private _targetNode:Node = null;
|
|
|
|
private _isUpdate:boolean = false;
|
|
|
|
start () {
|
|
// Your initialization goes here.
|
|
window.mainCamera = this.camera.getComponent(CameraComponent);
|
|
}
|
|
|
|
public init(targetNode:Node): void {
|
|
this._targetNode = targetNode;
|
|
|
|
this.node.setPosition(this._targetNode.position);
|
|
this.node.setRotationFromEuler(0, 180, 0);
|
|
this.node.children[0].setRotationFromEuler(-60, -180, 0);
|
|
this.node.children[0].setPosition(0, 34, -17);
|
|
}
|
|
|
|
public startGame(){
|
|
this._isUpdate = true;
|
|
}
|
|
|
|
public finishGame(){
|
|
this._isUpdate = false;
|
|
}
|
|
|
|
update (deltaTime: number) {
|
|
if(this._isUpdate){
|
|
Vec3.lerp(vec_1, this.node.position, this._targetNode.position, 0.1);
|
|
this.node.setPosition(vec_1);
|
|
}
|
|
}
|
|
}
|