热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unity3D常用JS脚本

一、命名规范1、变量--首写是小写字母。变量用来储存游戏状态中的任何信息。2、函数--首写是大写字母。函数是一个代码块,只需要写一次,在需要时候可以被再

一、命名规范
  1、变量--首写是小写字母。变量用来储存游戏状态中的任何信息。
  2、函数--首写是大写字母。函数是一个代码块,只需要写一次,在需要时候可以被再次重写。
  3、类--首写是大写字母。可以被认为是函数的库。
  4、提示:当阅读范例代码或者Unity的API,要注意首写字母,这将有助于你更好的理解对象之间的关系。
  5、在Unity中为了移动一个游戏对象我们需要用transform来更改它的位置,属于Translate,这个Translate函数

有x,y和z三个参数
  7、Player输入
   定按键按下后参数的变化:
    function Update ()
    {
    transform.Translate    (Input.GetAxis("Horizontal"), 0, Input.GetAxis    ("Vertical"));
    }

Input.GetAxis()函数返回-1或1的一个值,例如在横轴上左光标键映射为-1,有光标键映射为1.

     控制键盘输入wasd移动的速度
   var speed = 5.0;
   function Update ()
    {
        var x = Input.GetAxis("Horizontal") * Time.deltaTime * speed;
        var z = Input.GetAxis("Vertical") * Time.deltaTime * speed;
        transform.Translate(x, 0, z);
    }
   8、跟随  --连接变量
    var target:Transform;
    function Update()
    {
         transform.LookAt(target);
    }

  6、投掷的脚本代码
var speed=3.0;
var cratePrefab:Transform;

function Update ()
{
    if(Input.GetButtonDown("Fire1"))
    {
        //create the prefab
        var crate=Instantiate(cratePrefab,transform.position,Quaternion.identity);
        //add force to the prefab
        crate.rigidbody.AddForce(transform.forward*2000);
    }
}

  7、开门
/*
function OnControllerColliderHit(hit:ControllerColliderHit)
{
    if(hit.gameObject.tag=="door")
    {
        hit.gameObject.animation.Play("door_open");
    }
}
*/

var rayCastLenght=5;

function Update()
{
    var hit:RaycastHit;
    //Check if we're colliding
    if(Physics.Raycast(transform.position,transform.forward,hit,rayCastLenght))
    {
        //...with a door
        if(hit.collider.gameObject.tag=="door")
        {
            //open the door
            hit.collider.gameObject.animation.Play("door_open");
        }
    }
}
#region 世界坐标系转化为地形坐标系
    ///


    /// 获得相对于地形的标准化位置
    ///

    /// 碰撞点的位置
    /// 当前地形
    /// 返回位置
    protected Vector3 GetNormalizedPositionRelativeToTerrain(Vector3 pos, Terrain terrain)
    {
        Vector3 tempCoord = (pos - terrain.gameObject.transform.position);
        Vector3 coord;
        coord.x = tempCoord.x / terr.terrainData.size.x;
        coord.y = tempCoord.y / terr.terrainData.size.y;
        coord.z = tempCoord.z / terr.terrainData.size.z;

        return coord;
    }
    ///


    /// 获得某点相对于地形高度图的位置
    ///

    /// 世界坐标系中的某点
    /// 当前地形
    /// heightmapWidth
    /// heightMapHeight
    ///
    protected Vector3 GetRelativeTerrainPositionFromPos(Vector3 pos, Terrain terrain, int mapWidth,

int mapHeight)
    {
        Vector3 coord = GetNormalizedPositionRelativeToTerrain(pos, terrain);
        // get the position of the terrain heightmap where this game object is
        return new Vector3((coord.x * mapWidth), 0, (coord.z * mapHeight));
    }    
#endregion
判断物体是否在视角内:
public var isRendering:boolean=false;
private var lastTime:float=0;
private var curtTime:float=0;

function Update()
{
    isRendering=curtTime!=lastTime?true:false;
    lastTime=curtTime;
}

function OnWillRenderObject()
{
    curtTime=Time.time;
}

转:https://www.cnblogs.com/Lin267307031/archive/2013/01/29/2881722.html



推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
author-avatar
HE-KILL-MY-EGO
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有