热门标签 | 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



推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • linux进阶50——无锁CAS
    1.概念比较并交换(compareandswap,CAS),是原⼦操作的⼀种,可⽤于在多线程编程中实现不被打断的数据交换操作࿰ ... [详细]
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社区 版权所有