Unity3D 5.x 简单实例 - 脚本编写
1,Vector3 类型变量存储向量坐标值
|
Vector3.forward |
Vector3(0,0,1) |
|
Vector3.up |
Vector3(0,1,0) |
|
Vector3.right |
Vector3(1,0,0) |
|
Vector3.zero |
Vector3(0,0,0) |
|
Vector3.one |
Vector3(1,1,1) |
2,给对象RigidBody添加组件 ,然后给RigidBody一个速率(velocity)让它的移动
using UnityEngine;
using System.Collections; public class moveFwd : MonoBehaviour
{ public float moveSpeed = 0.1f; // Use this for initialization
void Start()
{ } // Update is called once per frame
void Update()
{
Vector3 moveForward = new Vector3(moveSpeed, , moveSpeed);
this.GetComponent<Rigidbody>().velocity = moveForward;
}
}

3, 鼠标移入变红色,鼠标移出还原颜色,点击鼠标播放声音,JS代码实现:
#pragma strict var oldColor:Color;
var audioPlay=false; function Start () {
oldColor= this.GetComponent(MeshRenderer).material.color;
} function Update () { } //鼠标移入
function OnMouseOver(){
this.GetComponent(MeshRenderer).material.color=Color.red; //旋转
this.transform.Rotate(,-*Time.deltaTime,);
print("OnMouseOver");
}
//鼠标移出
function OnMouseExit(){
this.GetComponent(MeshRenderer).material.color=oldColor;
print("OnMouseOut");
}
//点击鼠标
function OnMouseDown(){
if (audioPlay==false) {
this.GetComponent(AudioSource).Play();
audioPlay=true;
}else {
this.GetComponent(AudioSource).Pause();
audioPlay=false;
}
print("OnMouseDown"); }
4, 操作文本的时候,记得先引用 UnityEngine.UI:
using UnityEngine;
using System.Collections;
using UnityEngine.UI; public class count : MonoBehaviour
{
void OnMouseDown() {
GameObject.Find("Canvas/Text").GetComponent<Text>().text = "Score";
}
}
5,给小球添加物理材质,是小球跳动:Asseets → Create → Physic Material :

JS控制小球颜色变化:
var t:float=;
function Update () {
t+=Time.deltaTime;
//每3秒换一个随机颜色
if(parseInt(t)%==){
gameObject.Find("Sphere").GetComponent(MeshRenderer).material.color=Color(Random.Range(,)/255f,Random.Range(,)/255f,Random.Range(,)/255f);
} }
6, 获取对象放在Start()方法里面,不要放到Update()里面,这样会提高运行效率,JS控制灯光变强、变弱:
#pragma strict
import UnityEngine.Light; var directLight:GameObject;
var theTxt:GameObject;
var objCube:GameObject; function Start () {
//获取对象
directLight=gameObject.Find("Directional Light");
theTxt=gameObject.Find("Canvas/Text");
objCube=gameObject.Find("Cube");
} function Update () { //更改灯光亮度
if (Input.GetKey(KeyCode.L)) {
directLight.GetComponent(Light).intensity+=0.1;
};
if (Input.GetKey(KeyCode.K)) {
directLight.GetComponent(Light).intensity-=0.1;
};
theTxt.GetComponent(Text).text = directLight.GetComponent(Light).intensity.ToString();
if (Input.GetKey(KeyCode.S)) {
//调用了Cube组件中的go方法
objCube.SendMessage("go");
};
}
7,代码实现第一人称控制器,思路:
①新建项目,添加地面Plane,创建3D Object(Capsule) ,添加Cute
②给Capsule附加脚本让其能够上下左右移动
③把Main Camera的Position调节和Capsule一致、略高,然后把MainCamera作为Capsule的Child Object
JS 代码:
#pragma strict
@script RequireComponent(CharacterController) var speed:float=6.0;
var jumpspeed:float =8.0;
var gravity:float =1.0;
private var movedirection:Vector3=Vector3.zero;
private var grounded:boolean=false; function FixedUpdate(){
if (grounded){
movedirection=Vector3(Input.GetAxis("Horizontal"),,Input.GetAxis("Vertical")); movedirection=transform.TransformDirection(movedirection);
movedirection*=speed ; if(Input.GetButton("Jump")){
movedirection.y=jumpspeed;
}
}
movedirection.y -= gravity*Time.deltaTime; var controller:CharacterController=GetComponent(CharacterController);
//移动命令 var flags=controller.Move(movedirection*Time.deltaTime);
//CollisionFlags.CollidedBelow 底部发生了碰撞“flags & CollisionFlags.CollidedBelow”返回1
//CollisionFlags.CollidedNone 没发生碰撞“flags & CollisionFlags.CollidedNone”返回1
//CollisionFlags.CollidedSides 四周发生了碰撞“flags & CollisionFlags.CollidedSides”返回1
//CollisionFlags.CollidedAbove 顶端发生了碰撞“flags & CollisionFlags.CollidedAbove”返回1
// 单个& 表示比较两个二进制数值
//位掩码技术
grounded=(flags & CollisionFlags.CollidedBelow)!=;
}
参考 :
Unity3D 5.x 简单实例 - 脚本编写的更多相关文章
- android Jni NDK开发环境搭建及其简单实例的编写
android Jni NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...
- Unity3D 5.x 简单实例 - 孤岛场景搭建
1,如果我们的Unity 5.X 是从这个地址下载的,安装后不会有资源包,则需要从Unity3D官网下载资源包: Standard Assets (Unity 5.x) 下载 下载后安装后,Unity ...
- Unity3D 5.x 简单实例 - 发射炮弹
1,下载.安装: http://unity3d.com/cn/get-unity/download/archive 建议直接借助 UnityDownloadAssistant 进行安装,根据需要勾选需 ...
- Unity3D自定义编辑器简单实例
MenuItem:在标题栏自定义菜单.需要在Editor文件夹内创建脚本,无需挂载.但是注意其下的函数必须为静态函数. using UnityEngine; using UnityEditor; pu ...
- Selenium2学习-018-WebUI自动化实战实例-016-自动化脚本编写过程中的登录验证码问题
日常的 Web 网站开发的过程中,为提升登录安全或防止用户通过脚本进行黄牛操作(宇宙最贵铁皮天朝魔都的机动车牌照竞拍中),很多网站在登录的时候,添加了验证码验证,而且验证码的实现越来越复杂,对其进行脚 ...
- linux脚本之简单实例
利用脚本计算10的阶乘 简单说明一下: #!/bin/bash说明该shell使用的bash shell程序.这一句不可少for i in `seq 1 10`还可以写成for i in 1 2 3 ...
- Wordpress解析系列之PHP编写hook钩子原理简单实例
Wordpress作为全球应用最广泛的个人博客建站工具,有很多的技术架构值得我们学习推敲.其中,最著名最经典的编码技术架构就是采用了hook的机制. hook翻译成中文是钩子的意思,单独看这个词我们难 ...
- BAT脚本编写教程简单入门篇
BAT脚本编写教程简单入门篇 批处理文件最常用的几个命令: echo表示显示此命令后的字符 echo on 表示在此语句后所有运行的命令都显示命令行本身 echo off 表示在此语句后所有运行的命 ...
- selenium从入门到应用 - 2,简单线性脚本的编写
本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下 ...
随机推荐
- jQuery.Callbacks之demo
jQuery.Callbacks是jquery在1.7版本之后加入的,是从1.6版中的_Deferred对象中抽离的,主要用来进行函数队列的add.remove.fire.lock等操作,并提供onc ...
- C#设计模式之命令
IronMan之命令 在本篇中还是围绕着“IronMan”来讲,在上一篇“外观”中我们说到过“控制中心”.它是负责IronMan的核心,所有能想象到的功能都跟它有关系,就在使用它的时候,发现了一些问题 ...
- PHP钩子机制
什么是钩子 大家想必听过插件,wordpress插件特别多,这个就是用钩子机制实现的. 当代码在运行的过程中,我们预先在运行的几个特殊点里执行一些特殊方法:例如在运行方法(例如Blog::add的ad ...
- CocoaPods pod 安装、更新慢解决方法
使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动了,令人甚是DT. 每一次都忘记现在自己记录一下 ...
- C#学习系列-文章导航
C#学习系列-.NET体系结构 C#学习系列-类与结构的区别 C#学习系列-String与string的区别 C#学习系列-抽象方法与虚拟方法的区别 C#学习系列-out与ref的区别 C#学习系列- ...
- spring定时任务之quartz
在Spring中,使用JDK的Timer类库来做任务调度功能不是很方便,关键它不可以象cron服务那样可以指定具体年.月.日.时和分的时间.你只能将时间通过换算成微秒后传给它.如任务是每天执行一次,则 ...
- Leetcode-2 Add Two Numbers
#2. Add Two Numbers You are given two linked lists representing two non-negative numbers. The digits ...
- c#运算表达式
1.取补运算 操作符:~ 操作数:限定int,uint,long,ulong和枚举类型,返回值于操作数类型相同 sbyte,byte,short,ushort,也可以运算,但运算前都将隐式转换为int ...
- 楼主,可否发一份代码给我!QQ....
一般来说,但凡博主写一篇很赞的文章,然后贴上演示demo的图片或者结果之后,下面一定有一大堆要代码的.不论你在博客中,把算法讲得多么透彻清晰,各种流程图伪代码一清二楚:也不论你提出了任何漂亮的思路和设 ...
- MyCAT ER分片的验证
在这里,构造了两张表,熟悉Oracle的童鞋都知道,dept(部门表)和emp(员工表),其中dept中的deptno是emp表中dept_no的外键. 两表的建表语句如下: create table ...