• 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 ExtremePowers · Aug 14, 2014 at 03:45 PM · terraintree

How does tree instances work?

I can't figure out how these work, here is the code I have.

 var instances = new ArrayList();
 if (index >= 0) {
     var instance = new TreeInstance();
     instance.position = new Vector3(ChunkPosX + x, height, ChunkPosZ + z);
     instance.color = Color.white;
     instance.lightmapColor = Color.white;
     instance.prototypeIndex = index;
 
     instances.Add(instance);
 }
 Terrain.activeTerrain.terrainData.treeInstances = instances.ToArray(typeof(TreeInstance));

The problem is that the trees doesn't show in game. I have checked that the prototypes are working and they are working just fine.

NOTE: Index gets assigned by another part of the code, and its between the in game prototypes.

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

2 Replies

· Add your reply
  • Sort: 
avatar image
3

Answer by Alessio89 · Aug 16, 2014 at 11:41 AM

Uhm, it's been a long time since I worked with TreeInstance, but if i recall correctly, when you set the position of the tree, you should scale it by the terrain size. Something like this:

Vector3 currentTreeWorldPosition = Vector3.Scale(tree.position, terrain.size) + Terrain.activeTerrain.transform.position;

Now, again, it's been a long time so I suggest you do further research on the topic.

Edit: Ok that is if you want to get the tree position in the terrain, not if you want to place it. Still, terrain coordinates are relative, so they go from 0 to 1. You should still scale the position of the tree you want to place for the inverse of the terrain size, I suppose.

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
avatar image
1

Answer by Game-Armada · Dec 22, 2014 at 03:38 AM

You have to set instance.heightScale = 1; instance.widthScale = 1; and at the end Flush the terrainData with: terrain = Terrain.activeTerrain; terrain.Flush();

EDIT: of course you can randomize the scales if needed :), the point is that you need to set them!

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Placing tree objects with Terrain or Polybrush which one is useful ?? 0 Answers

Why can't I mass place solid trees? 3 Answers

Disabling colliders in Terrain Trees? 1 Answer

Upgraded to Unity 3 and now my trees are acting odd. 2 Answers

Cannot paint non-default trees 0 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