2014-08-09 09:26:47 ykr168age 阅读数 1882

一。Unity3D属性监视面板(Inspector)

        Unity3D属性监视面板中的属性允许用户在代码外部改变脚本及组件的初始值。另外,属性监视面板中的值允许用户在游戏运行模式下随时更改,并且在游戏中立即生效,停止运行后各属性又能恢复到最初的状态,这是Unity3D提供的一种运行时调试方式。

        哪些对象可以作为属性出现在Inspector中呢?答案是Unity3D引擎能够识别的所有对象以及Unity3D所支持的编程语言的基础数据类型对象,另外再加上以这些可识别的对象构建的自定义数据类型(实质同前两项)。注意:属性是指所有能够出现在Inpector面板中的项;组件是属性中的一种,它必须是Unity3D引擎所能识别的基本对象之一,即必须继承于UnityEngine.Object。

       Unity3D还提供了一种方案方便我们自定义、美化Inspector界面。


二。编写自定义属性

       在脚本中,以Unity3D引擎能够识别的类型及编程语言的基础数据类型定义的对象都可以作为一个属性出现在Inspector中,在C#script中,你同时还得将变量的访问权限改为public。

       如果你想自定义一个数据类型,并且希望它能出现在inspector中,那么,在C#script中,你必须使用[System.Serializable]关键字将其序列化(在js中,类必须继承于System.Object),并且对象中的元素必须是基本数据类型或Unity3D对象或者已被我们定义的可以出现在监视面板中的自定义类型,在C#script中,你同时还得将变量的访问权限改为public。如下:

// js Example
class Test extends System.Object
{ var p = 5; var c = Color.white; } var test = Test ();
 

// C# Example [System.Serializable] class Test { public int p = 5; public Color c = Color.white; }
     当然,你也可以使用[System.NonSerialized](js中使用@System.NonSerialized)来将原本出现在Inspector的属性隐藏起来。如下:

// p will not be shown in the inspector or serialized
@System.NonSerialized
var p = 5;
 
// C# Example
class Test 
{
 // p will not be shown in the inspector or serialized
 [System.NonSerialized]
 public int p = 5;
} 
 
三。编写自定义Inspector(这里不只是自定义属性)
    编写自定义Inspector是基于自定义脚本的,首先,我们得自定义一个脚本或类文件,其次我们还得定义一个编辑这个类(脚本本身就是一个类)的Inspector的类,该类必须继承于Editor或EditorWindow,并存放在Editor目录下。
 待续。。。
2016-02-17 14:54:41 u014261855 阅读数 494

Unity学习笔记(监视面板与基本组件)

 

各个单词的概念s

1.      Mesh外形: MeshRender外形渲染TextMesh

2.      Effect效果: particle sys粒子系统

3.      Physics物体组件:

Rigibody 钢体物理效果,勾选usegravity时,就会模拟重力影响的物理物体

                    可以修改其中的摩擦力重力 旋转摩擦等属性让物体更真实

Box collider 碰撞机,添加这个组件控制物理碰撞的属性

4.      Nav 协助组件:用于寻路等

5.      Audio声音: score 源

6.      Rending渲染:

7.      Miscellaneous动作:

8.      Scripts脚本:

 

声明:

         这些笔记也是本人学习的时候记下来的,有些东西是学习时查资料复制的,那时候没有记地址,有作者发现的可以私我添加转载地址哦!

         笔记提供给大家参考的同时也是我总结的过程,喜欢的可以转载。

 

2018-04-14 20:13:00 weixin_30666943 阅读数 20

Unity3D脚本基础

Unity3D中的引用类型

UnityEngine.Object类

在Unity3D的脚本系统中,Unity使用命名空间UnityEngine来盛放Unity3D定义的类型;
其中UnityEngine.Object类是最基本的类,是在Unity3D中所有对象的基类;
所有派生自UnityEngine.Object类的公共变量都会被显示在监视面板中,Unity程序员可通过编辑器来修改这些变量的数值。

UnityEngine.Object类提供的类成员:

字段:

  • hideFlags: 标识该游戏对象是否被隐藏
  • name

公共方法:

  • GetInstanceID
  • ToString: 返回该游戏对象的名称

静态方法:

  • Destory
  • DestoryImmediate
  • DontDestoryOnLoad
  • FindObjectOfType
  • FindObjectsOfType
  • Instance

UnityEngine.Component类

除了基本的UnityEngine.Object类之外,另一个很重要的UnityEngine.Component类派生自UnityEngine.Object类,它是所有能添加到游戏对象GameObject上组件Component的基类。

UnityEngine.Component类提供的类成员:

字段:

  • gameObejct: 该组件所在的游戏对象
  • tag: 该组件所在游戏对象的标签
  • transform: 该组件所在游戏对象上的Transform组件

公共方法:

  • BroadcastMessage
  • CompareTag: 返回该对象是否被标签标记
  • GetComponent
  • GetComponentInChildren
  • GetComponentInParent
  • GetComponents
  • GetComponentsInChildren
  • GetComponentsInParent
  • SendMessage
  • SendMessageUpwards

UnityEngine.Behaviour类

UnityEngine.Behaviour类继承自UnityEngine.Component类,
是一个可以启用或者禁用的组件

UnityEngine.Behaviour类提供的类成员:

变量:

  • enable: 启用状态下,会执行每帧的更新,禁用状态不会被执行
  • isActiveAndEnable: 表示当前Behaviour是否被启用

UnityEngine.MonoBehaviour类

UnityEngine.MonoBehaviour继承自UnityEngine.Behaviour类;在Unity3D游戏引擎中,UnityEngine.MonoBehaviour类是所有Unity3D脚本的基类。

UnityEngine.MonoBehaviour类提供的类成员:

消息:

  • Awake
  • FixedUpdate
  • Update
  • LateUpdate
  • OnBecameInvisible
  • OnBecameVisible
  • OnCollisionEnter
  • OnCollsionExit
  • OnCollisionStay
  • OnDestory
  • OnDisable
  • OnEnable
  • OnGUI
  • OnLevelWasLoaded
  • OnMouseDown
  • OnMouseDrag
  • OnMouseEnter
  • OnMouseExit
  • OnMouseOver
  • OnMouseUp
  • OnMouseUpAsButton
  • OnTriggerEnter
  • OnTriggerExit
  • OnTriggerStay
  • OnValidate
  • Start
  • Reset

公共方法:

  • CancelInvoke
  • Invoke
  • InvokeRepeating
  • IsInvoking
  • StartCoroutine
  • StopAllCoroutine
  • StopCoroutine

Unity3D脚本编程时需要注意,在C#中使用new操作符来实例化引用类型,但是在Unity3D中编写脚本时,凡是继承自MonoBehaviour类的类型包括MonoBehaviour本身都无法使用new关键字来进行实例化;
在Unity3D中我们可以通过将脚本以组件的形式挂载在游戏对象上来实现创建类型对象的目的。
当然,不需要继承自MonoBehaviour类的类型,是可以通过new操作符实例化的。

Unity3D中的值类型

向量结构

Vector2、Vector3、Vector4这三个结构体分别用来表示二维、三维、四维向量。

向量结构的实例成员:

  • magnitude
  • normalized
  • sqrMagnitude
  • x
  • y
  • z
  • w

向量结构的方法:

  • Cross
  • Dot
  • Distance
  • Lerp

向量计算

向量之间的点乘:
向量a(x1,y1,z1) 向量b(x2,y2,z2)
公式一:

a·b = x1x2 + y1y2 + z1z2

公式二:

a·b = |a||b|cos<a,b>

a·b的几何意义:向量b在向量a所处单位向量方向上的投影长度乘以向量a的模。

向量之间的叉乘:

公式一:

ab = (x1,y1,z1)(x2,y2,z2)
=(y1z2-z1y2,z1x2-x1z2,x1y2-y1x2)

公式二:

|a*b| = |a||b|sin<a,b>

其他值类型

  • Color
  • Color32
  • Ray
  • Touch
  • RaycastHit
  • Bounds
  • Rect
  • Plane

    REF

    Unity3D脚本编程

转载于:https://www.cnblogs.com/sylvan/p/8834947.html

2014-01-22 10:52:47 wangbotangbo 阅读数 658

当我们下载到了unity3D安装文件并安装后,我们打开unity3d就可以看到上面的窗口界面,它分为依次为标题栏、菜单栏、工具栏、场景面板、游戏面板、层次面板、项目面板、监视面板、控制台组成。
首先我们需要建模人员,把模型和贴图建好和画好,然后我们把建立好的模型和贴图放在项目根目录下的assets文件夹下。

或者右键点击project面板,点击show in explorer然后就可以找到相应的文件夹,把模型和贴图文件放入对应文件夹即可(模型即fbx类型)。

之后,我们把project面板中的模型,拖拽到Scene(场景面板)中对模型进行布置,比如大小 选择 缩放等等。

2014-04-30 23:24:00 weixin_30905133 阅读数 4

Unity3D属性监视面板(Inspector)  

2012-02-09 01:56:33|  分类: Unity|举报|字号 订阅

 
 

转载 自LoveGame日志

一。Unity3D属性监视面板(Inspector)

        Unity3D属性监视面板中的属性允许用户在代码外部改变脚本及组件的初始值。另外,属性监视面板中的值允许用户在游戏运行模式下随时更改,并且在游戏中立即生效,停止运行后各属性又能恢复到最初的状态,这是Unity3D提供的一种运行时调试方式。

        哪些对象可以作为属性出现在Inspector中呢?答案是Unity3D引擎能够识别的所有对象以及Unity3D所支持的编程语言的基础数据类型对象,另外再加上以这些可识别的对象构建的自定义数据类型(实质同前两项)。注意:属性是指所有能够出现在Inpector面板中的项;组件是属性中的一种,它必须是Unity3D引擎所能识别的基本对象之一,即必须继承于UnityEngine.Object。

       Unity3D还提供了一种方案方便我们自定义、美化Inspector界面。


二。编写自定义属性

       在脚本中,以Unity3D引擎能够识别的类型及编程语言的基础数据类型定义的对象都可以作为一个属性出现在Inspector中,在C#script中,你同时还得将变量的访问权限改为public。

       如果你想自定义一个数据类型,并且希望它能出现在inspector中,那么,在C#script中,你必须使用[System.Serializable]关键字将其序列化(在js中,类必须继承于System.Object),并且对象中的元素必须是基本数据类型或Unity3D对象或者已被我们定义的可以出现在监视面板中的自定义类型,在C#script中,你同时还得将变量的访问权限改为public。如下:

// js Example
classTestextendsSystem.Object
{
var p =5;
var c =Color.white;
}
var test =Test();

 

 

// C# Example
[System.Serializable]
classTest
{
publicint p =5;
publicColor c =Color.white;
}
     当然,你也可以使用[System.NonSerialized](js中使用@System.NonSerialized)来将原本出现在Inspector的属性隐藏起来。如下:

 

// p will not be shown in the inspector or serialized
@System.NonSerialized
var p =5;
 
// C# Example
classTest
{
// p will not be shown in the inspector or serialized
[System.NonSerialized]
publicint p =5;
} 

 
三。编写自定义Inspector(这里不只是自定义属性)
    编写自定义Inspector是基于自定义脚本的,首先,我们得自定义一个脚本或类文件,其次我们还得定义一个编辑这个类(脚本本身就是一个类)的Inspector的类,该类必须继承于Editor或EditorWindow,并存放在Editor目录下。

转载于:https://www.cnblogs.com/xpng/p/3702383.html

没有更多推荐了,返回首页