Unity3D JavaScript代码学习笔记1

        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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值