unity编程题(unity答题)
unity3d面试的时候会问到什么最多,必须要会的操作是什么?
首先最最最基础的几个UI插件和一些touch是必须会的,其次是一些设计模式和框架,可能不需要你写框架 ,但是他肯定会问你相关的问题。最后就是热更新和网络通讯,再就没啥了,可能会考你几个小问题,那就看你临场发挥了。 来自职Q用户:宋先生
你要真会unity,管人家问什么,照答就是了,如果不会的话,你去面试什么 来自职Q用户:黄先生
关于Unity的编程问题,这个的第19行是什么意思呢
这是所谓的单例
this指的是当前的这个类的实例
用类直接点出Static: Ace_IngameUiControl.Static
在所有脚本直接这样用,就是指的该实例类,前提是你这个脚本挂在场景的物体上且启用
unity游戏开发一道面试题,麻烦大神提示一下两个问题的代码
enum?PointType
{
Home,
Hole,
Farm,
}
struct?PointInfo
{
int?id;
PointType?pointType;
vector2D?position;
};
public?class?PosNode?:?Node
{
int?id;
PointType?pointType;
}
public?class?Player
{
int?maxHp=100;
int?maxExp=100;
int?hp=100;
int?exp=0;
public?Delegate?MoveEnd;
public?void?Move(PosNode*?node)
{
//移动
if(moveEnd)
{
MoveEnd(node);
}
}
public?void?AddHP(int?_hp)
{
hp=math.clamp(hp+_hp,0,maxHp);
if(hp=0)
{
//失败
}
}
public?void?AddExp(int?_exp)
{
exp+=_exp;
if(expmaxExp)
{
//升级
}
}
}
public?class?GameRoot
{
//c++中std::vector就是C#中的List
var?std::vectorPointInfo?pointList;
Player?player;
void?Start()
{
foreach(var?item?in?pointList)
{
Node?node=new?Node();
node-setPosition(item.position);
node-setPointTye(item.pointType);
node-setID(item.id);
Node::addChild(node);
node::OnClick=OnClickFunc;
}
}
void?OnClickFunc(PosNode*?posNode)
{
player::Move(posNode);
player::MoveEnd=MoveEndFunc;
}
void?MoveEndFunc(PosNode*?posNode)
{
switch(posNode.pointType)
{
case?Home:
player::AddHP(100);
break;
case?Hole:
player::AddHP(-20);
player::AddExp(10);
destroy(posNode);
break;
case?Farm:
player::AddHP(-10);
player::AddExp(5);
destroy(posNode);
break;
}
}
}