2024-11-04 09:14:49
为什么很多我看很多unity脚本里的函数c#里根本没有?
比如说transform.translate这个和c#有关系吗?
你还是学编程不够深入。c#是一门语言,严格意义上来讲c#只包括它的语法(变量定义,各种语句(循环条件等)),而外部的类库,不论是微软的类库比如Console.WriteLine还是unity的transform.translate,都不是c#的内容。这些都是被定义在外部的dll里的,比如console定义在system.dll里(在.net framework的安装目录下),而transform定义在unity.dll里(路径记不清了,你可以找找)。只要引用了这个dll,不论是微软的c#还是unity的,都可以调用transform里的东西。另外u3d的底层都是c和c++写的,包括transform.translate甚至微软的底层,c#脚本只不过是拿来用的
所以说,unity的c#完全是c#,transform.translate虽然不是c#写的,但引用它所在的dll,和调用这个函数,确实是c#提供的功能,这个没什么问题。所以,unity的函数底层实现不是c#写的,但是是给c#用的,而且其他语言也能用比如js,c语言,c++甚至java都能去调用,但你不能说调用了别的语言写的dll类库就说不是这个语言的代码了。
那是不是就算是对c#比较熟练的人学unity3d和不熟悉c#的人学unity3d。那个比较熟悉的人是不是也占不了多少好处?
都说unity3d的脚本可以用c#写,那么那个所谓的用c#写的脚本到底用了c#的什么东西呢?
肯定是用了c#的某些东西才说是用c#写的脚本啊。不然的话为什么不说用c,c++或者Java写的脚?
1.c#的语法和其他预言的语法不一样,例如c++的指针,c#就没有,c#switch可以是一个字符串,java就不行,c#集成类用的:这个冒号,java就不是,c可以多继承,c#就不行
2.unity的脚本用了c#的语法明白吗,语法!;语法是定义一门语言的基础,(只要有语法就是语言了),unity也支持一部分c#.net的类库,但是.net类库真的不属于c#的一部分
用的c#的语法!明白吗!你确实是菜鸟,因为你现在没有搞懂什么是一门编程语言,什么是c#,你先搞懂这个在问问题吧。你首先要真正明白什么是c#好吧。
2024-11-04 07:25:34