unity_tips

来源:互联网 发布:qq浏览器数据清除不了 编辑:程序博客网 时间:2024/05/21 15:51

(1)unity ios 模拟器设置

在Unity导航栏菜单中选择Edit->ProjectSettings ->Player(菜单项)选择IOS平台在下方SDK Version处选择运行设备为IOS模拟器。 选择完毕后Build and Run 即可。 

(2)Joystick

Joystick.js是官方提供的脚本.

          public MPJoystick moveJoystick;

35    float touchKey_x =  moveJoystick.position.x;
36    float touchKey_y =  moveJoystick.position.y; 
37 
38    if(touchKey_x == -1){
39       setHeroState(HERO_LEFT);
41    }else if(touchKey_x == 1){
       setHeroState(HERO_RIGHT);
44    
46    if(touchKey_y == -1){
47        setHeroState(HERO_DOWN);
48 
49    }else if(touchKey_y == 1){
50        setHeroState(HERO_UP);
51    
61    public void setHeroState(int newState)
62    {
                     case HERO_UP:
74                transformValue = Vector3.forward * Time.deltaTime;
97    }

(3)重力感应

GUI.Label(Rect(0,0,480,100),"position is " + Input.acceleration);

(4)简单持久化

1PlayerPrefs.SetString("key""value");
2string str = PlayerPrefs.GetString("key""defaule"));

 GetString()方法中的第二个参数, 它代表默认值。如果通过第一个参数的Key没有找到对应的Value的话,

GetString()方法就会返回我们写的第二个参数的默认值。

1//删除 PlayerPrefs 中某一个key的值
2PlayerPrefs. DeleteKey (“key”);
3 
4//判断 PlayerPrefs中是否存在这个key
5bool b = PlayerPrefs.HasKey(“key”);

(5)播放音乐

18        if (GUI.Button(new Rect(10, 10, 100, 50), "Play music"))  {
19 
20            //没有播放中
21            if (!music.isPlaying){
22                //播放音乐
23                music.Play();
24            }
25 
26        }

(6)旋转屏幕

强制屏幕四个方向不旋转的方法

1void Start () {
2    //纵向 上下 两个方向
3    iPhoneKeyboard.autorotateToPortrait = false;
4    iPhoneKeyboard.autorotateToPortraitUpsideDown = false;
5 
6    //横向 上下两个方向
7    iPhoneKeyboard.autorotateToLandscapeLeft = false;
8    iPhoneKeyboard.autorotateToLandscapeRight = false;
9}

(7)

动态创建游戏对象

GameObject Obj = (GameObject)Instantiate(prefab);

同步加载场景

Application.LoadLevel(“yourScene”);

异步加载场景

第一种异步加载游戏场景对应的方法是:

1Application.LoadLevelAsync("yourScene");

 第二种异步家在游戏场景对应的方法是:

1Application.LoadLevelAdditiveAsync ("yourScene");

(8)

游戏场景中Hierarchy视图中的所有的对象在切换场景的时候都会加载。其实有一种方法可以让某些游戏对象不会被加载,首先在Hierarchy视图中选择一个游戏对象,在右侧监测面板视图中我们可以看到一个 “小对勾”默认情况下是勾选状态,说明该游戏对象处于激活状态,如果点掉的话该对象将被隐藏。

  IEnumerator loadObject()
18    {
19        //便利所有游戏对象
20        foreach(GameObject obj in Objects)
21        {
22            //激活游戏对象
23            obj.active = true;
24            //记录当前加载的对象
25            load_index ++;
26 
27            //这里可以理解为通知主线程刷新UI
28            yield return 0;
29        }
30        //全部便利完毕返回
31        yield return 0;
32    }

(9)

StartCoroutine(),其实就是开启一个异步线程,这里可能有朋友会问Thread可以代替它吗? 答案是不行, 比如查询数据库的时候如果用Thread的话Unity就会报错说不能在线程中查询,但是在StartCoroutine()中就可以完成,所以开发中大家可以尝试着使用它,我们还可以使用StopCoroutine(“name”)来关闭一个正在执行的异步线程。

(10)

可以点击右上角的那个类似 十字 的按钮,现在y轴指向下面,所以倒过来了点击带尖的会转向那个方向,中间的方块是转换透视和Iso观察方式或者按 alt ,会出现一个 眼睛 图标,此时按住左键并移动鼠标就可以转动场景了




0 0