Unity脚本就是学不会会是怎么回事啊?

请教一下unity 脚本遇到的问题_unity吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:28,234贴子:
请教一下unity 脚本遇到的问题收藏
我在看这本书的时候》》 Unity 3D游戏开发雨松其中有一章是说多摄像机切换的,其中使用的方法是camer.active=camer1.active=来实现切换的但是我也用这个属性的时候提示这样的错误: “UnityEngine.GameObject.active”已过时:“GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.” (CS0618) (Assembly-CSharp)但是我在我的api手册中找不到SetActive这个方法,是不是我的api手册太久了 那里可以找到最新的还有,u3d中有没有类似主类的东西,比如这个切换摄像头的脚本我是随便绑在一个cube中的,总觉得这样的话后期很麻烦,太乱了谢谢各位
SiKi学院上有大量的项目案例课程,可以让学员随时随地学习!通过案例来从入门到深入的学习Unity!
是的,active已经过时,请使用setactive(false)
用 gameObject.SetActive(false); gameObject 是 MonoBehaviour 成员变量。
用activeSelf
登录百度帐号请教一个问题,我的Unity3D脚本编辑没有代码提示功能_百度知道
请教一个问题,我的Unity3D脚本编辑没有代码提示功能
我有更好的答案
这个很可能是因为你的脚本的上面是有错误的,所以很多提示都不能用了。此外,还有可能是脚本保存的问题,可以试试看保存脚本然后关闭脚本,再打开脚本试试看。新手自学,如果见解不当,希望指正,多谢了。
采纳率:79%
为您推荐:
其他类似问题
unity3d的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
拖到物体上时,显示:Can't add script Script_1
has not finished compilation yet.Please wait until compilation of the script has finished and try again
using UnityE
using System.C
using UnityE
public class Script_1 : MonoBehaviour
// Use this for initialization
void Start()
texture = (Texture2D)AssetDatabase.LoadAssetAtPath("Assets/tupian.jpg", typeof(Texture2D));
// Update is called once per frame
void Update()
void OnGUI()
GUI.DrawTexture(new Rect(0, 0, texture.width, texture.height), texture);
各位大神看看是怎么回事难道是脚本有问题
脚本没啥问题,重启下UNITY
等更新完再拖拽{:106:}
先保存脚本,然后看看脚本名字是否一致{:106:}{:106:}{:106:}
应该是你的脚本名不符合
通常就会出现这样的错误{:86:}
在unity3d里的脚本名称可能不是Script_1,改成这个就可以了,C#脚本要求一致的。
你要 保证 untiy 结构下的 文件名 和 mdev 端的 文件名类名一致才行。 一般都是在unity端创建 脚本,这时名字都是默认的,这是如果保存后 又尝试在untiy端 重命名文件, mdev端是不会同步的,它只会同步 你第一次命名的操作。不知道这是不是个bug。。。。
要回复问题请先或
关注: 0 人Unity踩坑记之解决Unity脚本使用VS打开变成杂项文件的问题
一般Unity开发都是使用Visual Studio进行脚本编辑,我用的是VS2017+Unity5.6,非常好用,但是偶尔会出现在Unity创建的脚本,然后在VS中打开变成杂项文件,导致无法编译,于是采用了一个最简单的解决方案,解决了这个问题。
我们来测试一下,首先在Unity中创建一个C#脚本,然后双击用VS2017打开,如图为杂项文件
然后我们在解决方案这里重命名脚本名字,在后面加1(如果解决方案没有该脚本,关掉VS重新打开即可)
我们就可以看到该脚本不再是杂项文件,于是再把脚本名字的1去掉即可,是不是很简单
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!关于unity脚本的问题【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:86,958贴子:
关于unity脚本的问题收藏
本人目前大二,初步学过C和C++、汇编等课程,目前接触unity,只是因为对游戏设计感兴趣,但是学unity过程中发现要添加的脚本压根不清楚是个什么情况啊为毛无从下手的感觉,要学C#吗?还是专门学untiyC#编程?要疯了
SiKi学院上有大量的项目案例课程,可以让学员随时随地学习!通过案例来从入门到深入的学习Unity!
同接触没多久,c就够了,差别没那么大,遇到不会就百度,一个一个难点啃过去就是了
我也是刚学C#不久,不过感觉还算简单的,和C++挺像。。。只不过有一些小小的差别而已C++里默认情况下是创建类的实例,当你创建实例时你就调用了构造函数。比如说std::你创建了一个std::string的实例,并为s调用了std::string()这个构造函数。在C#里默认情况下你将会创建一个引用,而不是一个实例。这点在Unity里能很好的表现出来,当你写GameO 的时候,你并没有创建一个GameObject的实例,因为游戏场景里并没有多出来一个游戏对象;假如你写GameObject g1; GameObject g2; Game object g3的话场景里也并不会多出3个对象。因此实际上当你在C#里写GameObject g1;的时候,在C++里相当于写GameObject& g1;。当然,C++不允许空引用,可是C#可以,这是C++于C#的另外一个区别。当你在Unity C#里使用一个没有赋值或是无效的引用时,Unity会不断的在控制台里抛出异常,比如UnassignedReferenceRxceltiom、MissingReferenceException或是NullReferenceException。Unity的每个C#脚本都是一个类,并都继承与MonoBehaviour类。这就是为什么当你写脚本时得写public class 脚本名: MonoBehaviour{}的原因。MonoBehaviour类里有许多方法,它们在特定的情况下会被游戏引擎调用。比如说MonoBehaviour.Update每帧都会被调用一次,MonoBehavioir.FixedUpdate每一段时间都会被调用一次,一般是每0.02秒,MonoBehaviour.OnCollisionEnter在本物体(添加了这个脚本的物体)在游戏里于其他物体发生碰撞时被调用。MonoBehaviour类的这些方法并不会做什么,但是你在你的脚本里可以重新定义这些方法,比如说你的脚本里写void Update() {transform.Translate(0,0,1)}的话,每次你的脚本.Update()被调用的时候本物体都会往前移动一个单位,也就是说,假如FPS为60(一秒钟内刷新了60帧)的话
Update会被调用60次,因此你将能看见你的物体一直以大约每秒60米的速度向前移动。
为了方便理解,你可以把MonoBehaviour想象成这样的一个C++类:class MonoBehaviour:{public:virtual void Awake();virtual void Start();virtual void Update();virtual void FixedUpdate();virtual void OnCollisionEnter();...............};因此,你的脚本可以重新定义MonoBehaviour的方法,你写成什么样到时候就会运行成什么样。其中Awake和Start这两个方法在脚本初始化时运行,Unity不推荐你给你的脚本写构造函数,它推荐你通过Unity界面的Inspector,或是Awake和Start这两个方法给你的类(也就是你的脚本)里的变量赋值。
关于之前提到的引用,引用总是要赋值才能使用的。继续提我们的GameObject.当你写GameObject g1的时候你既可以在Unity界面里给g1这个引用赋值,也可以通过函数赋值,比如说GameObject.Find()。这两种情况下你都是让g1引用已经存在的游戏对象,比如说当你写g1 = GameObject.Find(&a&)的时候,g1就代表游戏里名字叫做a的那个游戏对象,假如你现在写Destroy(g1)的话,你就把那个a也给销毁了。当然了,也可以通过脚本创建对象,一般来说C#里是通过使用new来创建对象的,只不过C#里不需要写delete,当你不需要new过的东西的话,游戏引擎会自动帮你销毁。比如说Vector3 v = new Vector3(0,0,0)。但是这并不适用于GameObject(游戏对象)。游戏对象是游戏里的东西,需要你自己控制它什么时候被创建以及什么时候被摧毁,因此你不能用new,你得用Instantiate来创建游戏对象,用Destroy来摧毁游戏对象。
楼上是官方
登录百度帐号

我要回帖

更多关于 总是学不会 的文章

 

随机推荐