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 Vesuvian · Mar 25, 2012 at 06:16 PM · javascriptclass

Looking for examples of Javascript classes

Hi all!

I'm having a hard time finding documentation of Unity classes (particularly in Javascript, which is the language I am working in).

In other programming languages I have worked in I have always instantiated a class and it would then be that classes responsibility to deal with assets. Unity gives me the impression that it should be backwards: you instantiate the asset and then attach a class to it. Is this correct? it sounds pretty inelegant.

I'm finding myself designing classes like this:

public class Block{

 var velocity = new Vector3(0,0,0);
 var position = new Vector3(0,0,0);
 // etc
 var model: GameObject;

 // Constructor
 function Block(x: int, y: int, z: int){
     // Build the model instance
 }

 // Deconstructor
 function Destroy(){
     // Delete the model instance
 }

 function Tick(){
     // Move, set the position of the model, etc
 }

}

As the game gets more complicated, I'm finding this approach is giving me a lot of problems. I'm having a lot of issues with scope, and what I assume is a problem with referencing/dereferencing.

I suppose what I'm asking is this: is there a good Javascript example out there that makes significant use of classes?

Thanks!

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
0

Answer by Eric5h5 · Mar 25, 2012 at 07:35 PM

It's not inelegant at all. Use prefabs with scripts on them, which you can reference using GetComponent. Some built-in components have shortcuts; for example Transform can be accessed by transform rather than GetComponent(Transform). e.g., someGameObject.transform.position.x = 5. Look in the GameObject docs for the variables which function as GetComponent shortcuts.

The class you used as an example has a lot of redundant info that's already handled by Unity, such as the position and velocity, which are in the Transform and Rigidbody components. You don't need a constructor, destructor, or Tick function; Unity already has Instantiate, Destroy, and Update. You can use OnDestroy if you need to do additional cleanup when that instance is destroyed.

A JS script is a class by default (which extends MonoBehaviour); you don't need to specify a class manually. The class is the name of the script.

Comment
Add comment · 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

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

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Custom JS class error - function is not a member of the class 2 Answers

NullReferenceException: Object reference not set to an instance of an object 1 Answer

missingGameObject problem 3 Answers

Public Class Error 1 Answer

Static array with custom class? 1 Answer


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