2016年1月28日,我正式开始学习Unity3D的JS脚本,这个帖子把我每天学到的一些值得记录的代码都保存下来,以后可以用来检索。
———————————————————————————————————————————————————
Camera的旋转观景
<span style="font-size:18px;">#pragma strict
var t=0.0f;
function Start () {
}
function Update () {
var speed=2.0f;
var rspeed=10.0f;
var t2:int;
t=t+1.0; t2=t/1000;
transform.Rotate(Vector3.up*Time.deltaTime*rspeed);
//transform.Translate(Vector3.right*Time.deltaTime*-speed);
if(t2%2) {transform.Translate(Vector3.up*Time.deltaTime*-speed);}
else {transform.Translate(Vector3.up*Time.deltaTime*speed);}
//transform.Translate(Vector3.forward*Time.deltaTime*speed);
}</span>
固定时间发生事件
private void BeginGenerate(float _delay,float _fixedTime)
{
invokeRepeting("GenerateBullet",_delay,_fixedTime);
}
private void GenerateBullet()
{
xxxxxxxx
}
private void EndGenerate()
{
CancelInvoke("GenerateBullet");
}
鼠标控制物体旋转
#pragma strict
var horizontalSpeed=6.0f;
var verticalSpeed=6.0f;
function Start () {
}
function Update () {
if(Input.GetMouseButton(0)){
var h:float = horizontalSpeed*Input.GetAxis("Mouse X");
var v:float = verticalSpeed*Input.GetAxis("Mouse Y");
transform.Rotate(-v,-h,0);
}
}
简单人物行动(左右视角+前后左右) 放在摄像机上面
#pragma strict
var speed=20.0f;
var rotationSpeed=100.0f;
var horizontalSpeed=6.0f;
var verticalSpeed=6.0f;
function Start () {
}
function Update () {
var upward:float=Input.GetAxis("Vertical")*speed;
var leftward:float=Input.GetAxis("Horizontal")*speed;
var h:float = horizontalSpeed*Input.GetAxis("Mouse X");
var v:float = verticalSpeed*Input.GetAxis("Mouse Y");
transform.RotateAround(transform.position,Vector3.up,h);
upward*=Time.deltaTime;
leftward*=Time.deltaTime;
transform.Translate(0,0,upward);
transform.Translate(leftward,0,0);
transform.localPosition.y=15;
}
第一视角+人物移动(和左右视角的区别,值得仔细看一下,也可以自己试试为什么要这么写)
#pragma strict
var speed=20.0f;
var rotationSpeed=100.0f;
var horizontalSpeed=6.0f;
var verticalSpeed=6.0f;
var v=0.0f;
var minY=-60f;
var maxY=60f;
function Start () {
}
function Update () {
var upward:float=Input.GetAxis("Vertical")*speed;
var leftward:float=Input.GetAxis("Horizontal")*speed;
var h:float = transform.localEulerAngles.y+horizontalSpeed*Input.GetAxis("Mouse X");
v+=verticalSpeed*Input.GetAxis("Mouse Y");
v=Mathf.Clamp(v,minY,maxY);
transform.localEulerAngles = new Vector3(-v, h, 0);
upward*=Time.deltaTime;
leftward*=Time.deltaTime;
transform.Translate(0,0,upward);
transform.Translate(leftward,0,0);
transform.localPosition.y=0;
}