Unity3D 2D入门——第2天:C#,我跟C++有点眼缘

Unity3D,因为我做的是2D的东西,很多都可以直接用脚本写,所以在构建模型上,先告一段落,我又回到 C# 上来了。


老样子,先来一个链接

http://my.oschina.net/u/1585857/blog/475674

这个链接是 C# 开发 Unity的个教程,先放在这里,我们先往后再退一步


先说说看 C# 基础语法的问题。和C++真的很像有木有。我就把它当成加强版的 C++ 了,更多的去使用了类和命名空间,抛弃了更多C的习惯。


今天主要就是熟悉基本的类型,函数定义,类的定义,还有泛型。因为对C++还算熟悉,感觉过渡挺流畅的。


最头疼的莫过于引用这么个东西了, C#中没有指针这么个蛋疼玩意儿,但是多了个引用更蛋疼。

没有->这种东西,所有类的对象默认都是引用,赋值也都是引用赋值。

所以想要完整copy对象内的数据,就得在赋值时使用拷贝构造函数( Vector2 pt1 = newVector2( pt0 ); ),或者使用深度拷贝。

而深度拷贝也是蛋疼的东西:当类A中含有另一个成员变量类C的时候,还需要声明类A和类C均继承于IClonable,并为A、C实现 Clone方法。然后在赋值的时候,这么写


 Vector2 pt1 = (Vector2) pt0.clone() ; 


可怜。。。。。


说到Clone,再提一下返回值,居然是object,一细查发现所有类(包括自定义的),均继承与此基础类,居然有这种跟MATLAB类似的特性。


另外,泛型方面,我使用了一个List<Vector2>的类型,查了一下添加元素的内容,居然是添加的引用!!!也就是说如果我仅仅想添加值的时候,还需要 listName.Add( new Vector2( 0,0 ) ); 这样写大哭

当然,添加引用也是有好处的,至少不用去写拷贝构造或者深度复制了


C#基础就搞了这些,还有很多不熟悉的,不过对于暂时的脚本使用,应该足够了,换!


回到刚刚的地方,开始看UNITY脚本了,刚刚开始,就看了属性与变量的关系,还有脚本与组件命名的关系,发现Unity真的做的挺细致的,而很强大的一个函数叫做 GetComponent ,他可以获取 Unity 类库中的各类组件(当然这个组件必须属于脚本所应用的GameObject ),用它就可以方便的去修改和获取组件的属性了,语法写在最后,给今天画个句号


GetComponent<Rigidbody2D>().position.x = 10;


本文在表述或者代码方面如果有问题,欢迎指正(站内信或者评论都可以),我会及时修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值