Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Benifir · Jul 23, 2013 at 12:11 AM · c#javascript

Javascript to C# Conversion Question

This should be an easy fix but I just can't seem to think of how to apply MonoBehavior or an inheritance class to this. I frankly don't know where to go with this. I translated it from Javascript. Obviously I need to add a few lines, but I can't think of what I need to add. Here is the original:

 @script ExecuteInEditMode
 
 var theLight : Transform;
 
 function Update () 
 {
     
     renderer.sharedMaterial.SetVector("_WorldLightDir", -theLight.forward);
 
 }

And where I am at this point:

 [ExecuteInEditMode]
     
 Transform theLight;
 
 void Update () {
     
     renderer.sharedMaterial.SetVector("_WorldLightDir", -theLight.forward);
 }

Any pointers?

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by clunk47 · Jul 23, 2013 at 12:15 AM

You have to define the class(public class Example), and import references (UnityEngine and System.Collections in this example). Here is an example. Say for example's sake, your script name is Example.cs. Then your class name would be Example.

 using UnityEngine;
 using System.Collections;
 
 [ExecuteInEditMode]
 
 public class Example : MonoBehaviour
 {
     public Transform theLight;
 
     void Update()
     {
         //Your code here.
     }
 }



Notice I say public on the transform. That's because by default in C#, objects are private, unlike JS. So if you need something to show up in the inspector, you need to make it public.

Comment
Add comment · Show 9 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image clunk47 · Jul 26, 2013 at 02:43 AM 1
Share

Has this answer resolved your concern?

avatar image Benifir · Jul 26, 2013 at 03:05 AM 1
Share

Yes and no. That was the first thing I decided that I neede to do, however I didn't know if I needed to inherit from anything or make it make it monobehaviour. I decided to leave it without either and see if it causes any problems later on when I'm wrapping everything up (: thank you.

avatar image clunk47 · Jul 26, 2013 at 02:37 PM 1
Share

It usually needs to be a $$anonymous$$onoBehaviour, since $$anonymous$$onoBehaviour is the class every script derives from, at least every script you use in your actual game. Some script, like Editor scripts can derive from System.Object. Click Here for more clarification.

avatar image clunk47 · Jul 26, 2013 at 02:37 PM 1
Share

And you HAVE TO define your class for it to work.

avatar image clunk47 · Jul 26, 2013 at 03:12 PM 1
Share

Ok, have you got a C# script running in Unity then?

 using UnityEngine;
 using System.Collections;
 
 public class Example : Component
 {
     void Awake()
     {
         Debug.Log ("TEST");    
         
     }
 }

Won't work. You'll just get a warning.

The class defined in the script file named 'Example' is not derived from $$anonymous$$onoBehaviour or ScriptableObject!

Using Javascript every script automatically derives from $$anonymous$$onoBehaviour. When using C# or Boo you have to explicitly derive from $$anonymous$$onoBehaviour.

Did you read the documentation I linked you to?

Show more comments

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

17 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Can someone help me fix my Javascript for Flickering Light? 6 Answers

Setting Scroll View Width GUILayout 1 Answer

Best place to learn Marching Cubes Algorithm? 2 Answers

Calling c# function from a JS 1 Answer

Need Help - Last Problem Converting PC to Android - Using JS to read CS 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges