unity3d--杂记

来源:互联网 发布:足球阵容设计软件 编辑:程序博客网 时间:2024/06/07 00:57

1.设置图标指针图片:

File->Build Settings ->Player Settings.   此时可将Inspector视图中default cursor(默认光标) 改成你想要的texture纹理。(这是更改整个场景的默认鼠标样式)

2.设置天空颜色:

camera中的clear flags设置为skybox,同时添加一个skybox的组件,添加custom skybox为自己想要的shader(着色器)。

3.Time.deltatime:

Time类包含了一个重要的类变量deltaTime,它表示距上一次调用Update或FixedUpdate所用的时间。如果想要一个值根据每帧的变化而变化(增加或减少) ,你应该使用 Time.deltaTime来乘以这个值。这样才能使得变化的效果依赖于单位时间,而不是帧频。这不仅使得游戏的运行独立于帧频,也使得运动的效果符合现实。 
同理,要让灯光的照射范围在每秒使半径增加 2个单位,可进行如下编码: 
function Update() 

   light.range += 2.0 * Time.deltaTime; 

4.Unity 5的Enlighten被放在Window->Lighting菜单项下,并集成了原本的RenderSetting设置,所以你可以在Lighting选项卡内找到包含skybox或是即时或烘焙光源的设置.

5.注意:在inspector视图中,有一些脚本如果不展开的话,有些方法或者属性就不起作用了。

6.SlicedSprite九宫切图可以定义一个图片边框部分不被拉伸。

7.在Tween Alpha中Tweener 下面,player style可以控制渐变的效果(持续渐变或者是只是渐变一次等等)。

8.NGUI中invisible widget(隐藏部件)创建来放几个child按钮,以便对这几个按钮同时进行操作。

9.关于Gameobject 和Transform这两兄弟我转载了一篇博客。

9.关于游戏存档,利用playerprefs,转载了一篇博客。

10.对于NGUI,它带有一个UI Play Sound脚本,把它挂在一个按钮上,然后可以通过设置某个触发事件来播放音乐。

11.可以在game模式下调整位置信息等 然后复制一下(copy component),再在scene模式下粘贴(paste component values ).

12.Camera.main  第一个启用的被标记为“MainCanmera”的相机(只读),如果场景中没有相机返回Null.

13. offsetPosition.normalized表示单位向量。

14.offsetPosition.magnitude表示向量的长度。

15.function RotateAround (point : Vector3, axis : Vector3, angle : float) : void

按照angle度通过在世界坐标的point轴旋转物体。
简单的说,按照多少度在世界坐标的某位置轴旋转物体。

function Update() {
// Spin the object around the world origin at 20 degrees/second.
//围绕世界坐标原点,每秒20度物体自旋
transform.RotateAround (Vector3.zero, Vector3.up, 20 * Time.deltaTime);
}

16.Transform.Rotate 旋转
应用一个欧拉角的旋转角度,eulerAngles.z度围绕z轴,eulerAngles.x度围绕x轴,eulerAngles.y度围绕y轴(这样的顺序)。

gameObject.transform.Rotate(new Vector3(0,1,0),Input.GetAxis("Horizontal");//表示按下左右键围绕Y轴旋转

17.不要分别设置欧拉角其中一个轴(例如: eulerAngles.x = 10; ),因为这将导致偏移和不希望的旋转。当设置它们一个新的值时,要同时设置全部。Unity会从Transform.rotation这个四元组结构中转换角度到欧拉角的表达方式,或者反过来。

18.UICamera.hoveredObjec  判断鼠标是否位于UI界面的组件上(防止在点击UI界面时人物移动)

19.TweenPosition(位移动画)用法:
用法1.NGUI的控件从PosA位置移动到PosB位置,播放动画
用法2.在游戏中需要动态创建带有TweenPosition组件动画的对象,对象创建、移动、到达指定位置、销毁的过程。
eg.游戏中玩家吃金币,迟到金币后转换为分数,分数播放一个TweenPosition组件动画,从玩家位置移动到分数标签位置,到达分数后,销毁。

questTween.PlayReverse(); //正着播放

questTween.PlayForward();//反着播放

20.更改某一物体上的图标样式:

  1. var cursorTexture : Texture2D;  
  2. var cursorMode : CursorMode = CursorMode.Auto;  
  3. var hotSpot : Vector2 = Vector2.zero;  
  4.   
  5. function OnMouseEnter () {  
  6.     Cursor.SetCursor(cursorTexture, hotSpot, cursorMode);  
  7. }  
  8.   
  9. function OnMouseExit () {  
  10.     Cursor.SetCursor(null, Vector2.zero, cursorMode);  
  11. }
21.继承monobehavior的单例:

using UnityEngine;
using System.Collections;
public class test2 : MonoBehaviour {
    public static test2 instance;
    // Use this for initialization
    void Awake () {
        instance = this;
    }
     
    // Update is called once per frame
    void Update () {
 
    }
}
22.OnMouseOver() 当鼠标位于这个collider上时,会在每一帧调用这个函数

OnMouseEnter()  当鼠标位于这个collider上时,会调用一次这个函数

23.Anchor 是NGUI中关于各种部件对齐的一个组件. 

24.引进一个文本文件 public TextAsset objectsInfoListText。

25. Dictionary<int,ObjectInfo> 字典  根据前者去索引后者 ,

ObjectInfoDic.Add(id, info);// 添加到字典中 根据id查找到物品信息


ObjectInfo info = null;
ObjectInfoDic.TryGetValue(id, out info);  //根据id去找info 找到返回true  否则返回false

26.基于UIDragDropItem脚本可以实现简单的控件拖拽

27.

C# String.split()用法小结

第一种方法
string s=abcdeabcdeabcde;
string[] sArray=s.Split('c') ;
foreach(string i in sArray)
Console.WriteLine(i.ToString());
输出下面的结果:
ab
deab
deab
de
第二种方法
我们看到了结果是以一个指定的字符进行的分割。使用另一种构造方法对多个字
符进行分割:
string s="abcdeabcdeabcde";
string[] sArray1=s.Split(new char[3]{'c','d','e'}) ;
foreach(string i in sArray1)
Console.WriteLine(i.ToString());
可以输出下面的结果
ab
ab
ab

28.int.Parse()  将数字的字符串表示形式转换成它的等效32位有符号整数。


1 0
原创粉丝点击