对象

对象

print(Resources.Load(spritename).GetType); Debug.Log()也是一样的

回答:GetType是方法,要写成这样GetType()

慕容小匹夫 回复了问题 • 2 人关注 • 1 个回复 • 1233 次浏览 • 2015-02-26 23:55 • 来自相关话题

AssetBundle.CreateFromFile()(仅支持创建非压缩格式的对象),这个非压缩格式怎么是在打包的时候

回答:官方说法: AssetBundle.CreateFromFile: (1)只能用于pc和mac standalone (2)只支持Uncompressed:也就是在build的时候buildoption还要加上UncompressedAssetB...

海洋 回复了问题 • 2 人关注 • 1 个回复 • 3401 次浏览 • 2015-02-09 11:01 • 来自相关话题

我现在需要在游戏里即时显示如下信息: 等级,经验,杀敌,总输出,总承受伤害,数据已全部显示出来了。 我是把这些全封装

回答:楼上的回复好多哟。写得内容也好多哟。 如果是我让来设计这个东东,我说下我个人的看法。 搞一个Hero类即可。所有的属性,所有的行为。全部放在这个方法里。 存储数据和加载数据的方法也在此类定义一下。 这样我个人感觉是特别清楚的。也容于维护。 上面的回复我...

zhang247124629 回复了问题 • 15 人关注 • 7 个回复 • 4736 次浏览 • 2015-04-05 12:31 • 来自相关话题

条新动态, 点击查看
我是这样做的 希望能够对你有帮助,我分为实体和属性类,UI完全基于事件。实体负责逻辑处理以及事件派发,属性类就只包含属性。
<pre class='brush: csharp'>
public class Property
{
public... 显示全部 »
我是这样做的 希望能够对你有帮助,我分为实体和属性类,UI完全基于事件。实体负责逻辑处理以及事件派发,属性类就只包含属性。
<pre class='brush: csharp'>
public class Property
{
public int level;
public int hp;
public int maxHP;
.....
}
</pre>
属性独立分出来的好处是方便保存,简单的到在C#中我只需要序列化和反序列化。
<pre class='brush: csharp'>
public class GameEntity
{
public Property property { get;private set;}//属性只读
public GameEnity( Propery property )
{
this.property = property;
}
public EventHandler<EventArgs> PropertyChanged;//定义一个属性改变事件
public void InvokePropertyChanged( )//派发属性改变事件
{
if (PropertyChanged != null)
{
PropertyChanged.Invoke( this, EventArgs.Empty );
}
}
//某件事情导致了角色升级
protected virtual void OnLevelUp()
{
//升级属性变化
property.level = property.level + 1;
property.maxHP = XXXX; //血量上限提升,这依据你的策划公式
property.hp = property.maxHP;
.....
InvokePropertyChanged();//派发事件
}
}
</pre>

你的主角就是GameEntity的实例,一般放在一个单例的Game类里面,Game这个类作为一个负责资源加载初始等等操作,主角的创建也放在这里。
<pre class='brush: csharp'>
public calss Game
{
private static Game _instance;
public static Game instance
{
get
{
return _instance;
}
}
GameEntity _mainPlayer;
public void CreateMainRole()
{
//创建主角的操作,我在这里简单的实例化它
Property property = XXX;// 通过存档数据获取
_mainPlayer = new GameEntity( initProperty );
}
public Character mainPlayer { get { return _mainPlayer;} }
}
</pre>

显示数据,也就是一些UI逻辑。假如你的UI脚本是MonoBehaviour的话,你可以这样做
<pre class='brush: csharp'>
UILabel _lblLevel; //等级
void Start()
{
UILabel _lblLevel = 获取显示等级的UILabel;
// 监听角色属性变更事件
Game.instance.mainPlayer.PropertyChanged -= OnPropertyChanged;
Game.instance.mainPlayer.PropertyChanged += OnPropertyChanged;
}
//角色属性变更事件监听函数
private void OnPropertyChanged( object send, EventArgs args )
{
//控制UI变化,比如说
_lblLevel.Text = Game.instance.mainPlayer.property.level;
.....
}
</pre>
再加上合理的利用封装,继承,多态,设计模式一般的项目足以。

我现在需要在游戏里即时显示如下信息: 等级,经验,杀敌,总输出,总承受伤害,数据已全部显示出来了。 我是把这些全封装

回答:楼上的回复好多哟。写得内容也好多哟。 如果是我让来设计这个东东,我说下我个人的看法。 搞一个Hero类即可。所有的属性,所有的行为。全部放在这个方法里。 存储数据和加载数据的方法也在此类定义一下。 这样我个人感觉是特别清楚的。也容于维护。 上面的回复我...

zhang247124629 回复了问题 • 15 人关注 • 7 个回复 • 4736 次浏览 • 2015-04-05 12:31 • 来自相关话题

print(Resources.Load(spritename).GetType); Debug.Log()也是一样的

回答:GetType是方法,要写成这样GetType()

慕容小匹夫 回复了问题 • 2 人关注 • 1 个回复 • 1233 次浏览 • 2015-02-26 23:55 • 来自相关话题

AssetBundle.CreateFromFile()(仅支持创建非压缩格式的对象),这个非压缩格式怎么是在打包的时候

回答:官方说法: AssetBundle.CreateFromFile: (1)只能用于pc和mac standalone (2)只支持Uncompressed:也就是在build的时候buildoption还要加上UncompressedAssetB...

海洋 回复了问题 • 2 人关注 • 1 个回复 • 3401 次浏览 • 2015-02-09 11:01 • 来自相关话题

我现在需要在游戏里即时显示如下信息: 等级,经验,杀敌,总输出,总承受伤害,数据已全部显示出来了。 我是把这些全封装

回答:楼上的回复好多哟。写得内容也好多哟。 如果是我让来设计这个东东,我说下我个人的看法。 搞一个Hero类即可。所有的属性,所有的行为。全部放在这个方法里。 存储数据和加载数据的方法也在此类定义一下。 这样我个人感觉是特别清楚的。也容于维护。 上面的回复我...

zhang247124629 回复了问题 • 15 人关注 • 7 个回复 • 4736 次浏览 • 2015-04-05 12:31 • 来自相关话题