unity游戏代码编程(unity3d游戏代码)
unity if代码怎么写
1.新建工程,创建C#脚本,名称自拟。 2.双击脚本打开Mono Developer,写下如图所示代码: 3.切换回场景,将脚本绑定到模型上。 4.点击运行按钮调试,默认物体隐藏。 5.点击按钮,物体显示,但不影响按钮的隐藏和显示。
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;
}
}
}
请问如下意思的Unity C#代码如何写?
逻辑还是挺简单的,唯一注意的是新版本的unity用的VideoClip播放视频
代码就俩
public class MoveObjCtrl : MonoBehaviour
{
void OnCollisionEnter(Collision collision)
{
string tags = collision.collider.tag;
if (tags == "A")
{
Debug.Log(Time.frameCount + ": " + collision.collider);
Main.Instance.PlayMovie(gameObject, collision.collider.gameObject);
}
else if(tags == "B")
{
}
}
}
这是可移动的碰撞物体上的代码,动态添加
主代码如下
public class Main : MonoBehaviour
{
public static Main Instance = null;
public MoveObjCtrl moveObj = null;
public GameObject boom = null;
public VideoClip videoClip;
void Start()
{
Instance = this;
videoClip = Resources.Load("movie") as VideoClip;
boom = Resources.Load("boom") as GameObject;
GameObject mobj = Instantiate(Resources.Load("moveObj")) as GameObject;
moveObj = mobj.AddComponentMoveObjCtrl();
}
void Update()
{
//test
if (moveObj == null)
return;
if(Input.GetKey(KeyCode.W))
{
moveObj.transform.Translate(Vector3.forward*0.1f);
}
if (Input.GetKey(KeyCode.S))
{
moveObj.transform.Translate(Vector3.back * 0.1f);
}
}
public void PlayMovie(GameObject hitObj, GameObject beHitObj)
{
Destroy(hitObj);
Destroy(beHitObj);
GameObject movieobj = Instantiate(boom, beHitObj.transform.position, Quaternion.identity);
var videoPlayer = movieobj.AddComponentVideoPlayer();
var audioSource = movieobj.AddComponentAudioSource();
videoPlayer.playOnAwake = true;
videoPlayer.clip = videoClip;
videoPlayer.renderMode = VideoRenderMode.MaterialOverride;
videoPlayer.targetMaterialRenderer = movieobj.GetComponentRenderer();
videoPlayer.targetMaterialProperty = "_MainTex";
videoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource;
videoPlayer.SetTargetAudioSource(0, audioSource);
Destroy(movieobj, (float)videoClip.length);
}
}
需要工程代码,可以加好友
unity游戏开发需要代码吗
不需要。
Unity 是实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实] 。
Unity平台提供一整套完善的软件解决方案? ,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
基于Unity开发的游戏和体验月均下载量高达30亿次,并且其在2019年的安装量已超过370亿次 。
全平台(包括PC/主机/移动设备)所有游戏中有超过一半都是使用Unity创作的;在Apple应用商店和Google Play上排名最靠前的1000款游戏中,53%都是用Unity创作的。Unity提供易用实时平台,开发者可以在平台上构建各种AR和VR互动体验。
Unity 引擎的灵活性 使开发者能够为超过20个平台创作和优化内容 ,这些平台包括iOS、安卓、Windows 、Mac OS、索尼PS4、任天堂Switch 、微软Xbox One、谷歌Stadia、微软Hololens、谷歌AR Core、苹果AR Kit、商汤SenseAR等等 。
公司超过1800人规模的研发团队,同时跟随合作伙伴迭代 ,确保在最新的版本和平台上提供优化支持服务。