unity学习阶段笔记
来源:互联网 发布:pl sql developer下载 编辑:程序博客网 时间:2024/06/07 14:38
很少写博客呢,严肃的说来,这还是我第一篇博客呢。上个星期天开始学习unity,找了siki大神的拾荒者游戏例子一步步做从生成场景到建立player,enemy。然后给角色们加上各种动画,设定游戏结束的判定,进行ui的显示。到最后终于给整个游戏加上不同的音效,感觉自己萌萌哒。但是通过学习发现作为一个学生,我对c#了解的还很不足够。很多代码的意思根本看不懂或者说理解的很模糊。比如在GameManage脚本里(此脚本用于控制游戏的关卡载入,角色状态和UI设置)。关于instance这个实例(?)干什么用的还是搞不清楚。
using UnityEngine;using System.Collections;using System.Collections.Generic;using UnityEngine.UI;public class GameManager : MonoBehaviour { public static GameManager _instance; public static GameManager instance{ get { return _instance; } } public int level = 1;//当前游戏关卡 public int food = 100; [HideInInspector]public List<enemy> enemylist= new List<enemy>(); [HideInInspector]public bool isEnd = false;//是否到达终点 private bool sleepstep = true; private Text foodText; public Text failText; private playercontroller player; private MapManager mapManager; private Image dayimage; private Text daytext; void Awake() { _instance = this; DontDestroyOnLoad(gameObject); InitGame(); } void InitGame() { //初始化 mapManager = GetComponent<MapManager>(); mapManager.Initmap(); //初始化ui foodText = GameObject.Find("foodText").GetComponent<Text>(); UpdateFoodText(0); failText = GameObject.Find("failText").GetComponent<Text>(); failText.enabled = false; player = GameObject.FindGameObjectWithTag("Player").GetComponent<playercontroller>(); dayimage = GameObject.Find("DayImage").GetComponent<Image>(); daytext = GameObject.Find("DayText").GetComponent<Text>(); daytext.text = "Day " + level; Invoke("HideBlack", 1); //初始化参数 isEnd = false; enemylist.Clear(); } void UpdateFoodText(int foodChage) { if (foodChage == 0) { foodText.text = "Food:" + food; } else { string str = ""; if (foodChage < 0) { str = foodChage.ToString(); } else { str = "+" + foodChage; } foodText.text = str + " Food:" + food; } }// Update is called once per framevoid Update () {} public void reducefood(int count) { food -=count; UpdateFoodText(-count); } public void addfood(int count) { food += count; UpdateFoodText(count); } public void onplayermove() { if (sleepstep == true) { sleepstep = false; } else { foreach (var enemy in enemylist) { enemy.Move(); } sleepstep = true; } //检测有没有终点 if (player.TargetPos.x==mapManager.cols-2&&player.TargetPos.y==mapManager.rows-2){ isEnd = true; Application.LoadLevel(Application.loadedLevel);//加载下一个关卡; } } void OnLevelWasLoaded(int scenelevel) { level++; InitGame();//初始化游戏操作 } void HideBlack() { dayimage.gameObject.SetActive(false); }}其他的倒还好,在对unity中的动画,模型,刚体进行操作之前要先getComponent,但是音效和bgm的播放就需要先定义audiosource,然后再.play就可以进行播放。总之。。。好像也没什么好说的。以后慢慢来吧。
0 0
- unity学习阶段笔记
- react3阶段学习笔记
- react4阶段学习笔记
- Unity笔记(正版全阶段)目录
- Java学习笔记-准备阶段
- 第三阶段-原型学习笔记
- unity学习笔记
- UNity学习笔记
- unity学习笔记
- Unity学习笔记
- unity学习笔记2
- unity学习笔记3
- Unity学习笔记.01
- unity学习笔记
- unity学习笔记1
- unity学习笔记2
- unity学习笔记3
- unity学习笔记4
- linux学习笔记
- LeetCode OJ刷题历程——Remove Nth Node From End of List
- C++扬帆远航——1
- 【C#】面向对象基础—属性、方法、结构
- TP整合微信遇到的一系列问题
- unity学习阶段笔记
- leetcode:Spiral Matrix II 【Java】
- Xcode里一个工程(Project)多个项目(target)做版本控制讨论
- 1.跨浏览器通讯之iframe 以及window.open
- 华为oj 将真分数分解为埃及分数
- hdoj-5636===dfs枚举新增的路有木有走
- Java的集合详细总结
- Android中图片资源格式的转换
- CodeForces - 617B Chocolate (规律)